From: Richard Smith Date: Thu, 30 Jul 2015 03:17:16 +0000 (+0000) Subject: [modules] Remove redundant information written into DeclContext name lookup tables... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=668358238cd4de05445521e9ba5d334dfbc4ad1c;p=clang [modules] Remove redundant information written into DeclContext name lookup tables. We don't need to store the data length twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243612 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index 0c4dab4065..e5548fd719 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -944,12 +944,12 @@ ASTDeclContextNameLookupTrait::ReadKey(const unsigned char* d, unsigned) { return Key; } -ASTDeclContextNameLookupTrait::data_type -ASTDeclContextNameLookupTrait::ReadData(internal_key_type, - const unsigned char* d, +ASTDeclContextNameLookupTrait::data_type +ASTDeclContextNameLookupTrait::ReadData(internal_key_type, + const unsigned char *d, unsigned DataLen) { using namespace llvm::support; - unsigned NumDecls = endian::readNext(d); + unsigned NumDecls = DataLen / 4; LE32DeclID *Start = reinterpret_cast( const_cast(d)); return std::make_pair(Start, Start + NumDecls); diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp index ba8e1a8510..f1c907394b 100644 --- a/lib/Serialization/ASTWriter.cpp +++ b/lib/Serialization/ASTWriter.cpp @@ -3415,8 +3415,8 @@ public: } LE.write(KeyLen); - // 2 bytes for num of decls and 4 for each DeclID. - unsigned DataLen = 2 + 4 * Lookup.size(); + // 4 bytes for each DeclID. + unsigned DataLen = 4 * Lookup.size(); LE.write(DataLen); return std::make_pair(KeyLen, DataLen); @@ -3458,7 +3458,6 @@ public: using namespace llvm::support; endian::Writer LE(Out); uint64_t Start = Out.tell(); (void)Start; - LE.write(Lookup.size()); for (DeclContext::lookup_iterator I = Lookup.begin(), E = Lookup.end(); I != E; ++I) LE.write(