Tweak the data layout for the on-disk hash table of identifiers in the PCH file so that the key layout matches that of the PTH key layout
llvm-svn: 70066
This commit is contained in:
parent
b62db80c83
commit
b3e5f7a7ff
|
@ -1245,8 +1245,8 @@ public:
|
|||
static std::pair<unsigned, unsigned>
|
||||
ReadKeyDataLength(const unsigned char*& d) {
|
||||
using namespace clang::io;
|
||||
unsigned KeyLen = ReadUnalignedLE16(d);
|
||||
unsigned DataLen = ReadUnalignedLE16(d);
|
||||
unsigned KeyLen = ReadUnalignedLE16(d);
|
||||
return std::make_pair(KeyLen, DataLen);
|
||||
}
|
||||
|
||||
|
|
|
@ -2013,7 +2013,6 @@ public:
|
|||
EmitKeyDataLength(llvm::raw_ostream& Out, const IdentifierInfo* II,
|
||||
pch::IdentID ID) {
|
||||
unsigned KeyLen = strlen(II->getName()) + 1;
|
||||
clang::io::Emit16(Out, KeyLen);
|
||||
unsigned DataLen = 4 + 4; // 4 bytes for token ID, builtin, flags
|
||||
// 4 bytes for the persistent ID
|
||||
if (II->hasMacroDefinition() &&
|
||||
|
@ -2023,7 +2022,14 @@ public:
|
|||
DEnd = IdentifierResolver::end();
|
||||
D != DEnd; ++D)
|
||||
DataLen += sizeof(pch::DeclID);
|
||||
|
||||
// We emit the data length before the key length, because we want
|
||||
// the key length to immediately precede the actual string
|
||||
// data. This is so that our identifier length + key layout
|
||||
// matches that of the identifier hash table for pretokenized
|
||||
// headers.
|
||||
clang::io::Emit16(Out, DataLen);
|
||||
clang::io::Emit16(Out, KeyLen);
|
||||
return std::make_pair(KeyLen, DataLen);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue