From 6922bab65358e099c8e66ab97125589971be53bc Mon Sep 17 00:00:00 2001 From: Xinliang David Li Date: Sun, 3 Jan 2016 18:57:40 +0000 Subject: [PATCH] [PGO] Code refactoring to use header struct def /NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256712 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ProfileData/CoverageMappingReader.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/ProfileData/CoverageMappingReader.cpp b/lib/ProfileData/CoverageMappingReader.cpp index a0f82a0d4ed..32c692d8073 100644 --- a/lib/ProfileData/CoverageMappingReader.cpp +++ b/lib/ProfileData/CoverageMappingReader.cpp @@ -316,12 +316,17 @@ static std::error_code readCoverageMappingData( // Read the records in the coverage data section. for (const char *Buf = Data.data(), *End = Buf + Data.size(); Buf < End;) { - if (Buf + 4 * sizeof(uint32_t) > End) + if (Buf + sizeof(CovMapHeader) > End) return coveragemap_error::malformed; - uint32_t NRecords = endian::readNext(Buf); - uint32_t FilenamesSize = endian::readNext(Buf); - uint32_t CoverageSize = endian::readNext(Buf); - uint32_t Version = endian::readNext(Buf); + auto CovHeader = reinterpret_cast(Buf); + uint32_t NRecords = + endian::byte_swap(CovHeader->NRecords); + uint32_t FilenamesSize = + endian::byte_swap(CovHeader->FilenamesSize); + uint32_t CoverageSize = + endian::byte_swap(CovHeader->CoverageSize); + uint32_t Version = endian::byte_swap(CovHeader->Version); + Buf = reinterpret_cast(++CovHeader); switch (Version) { case CoverageMappingVersion1: -- 2.34.1