forked from OSchip/llvm-project
Fix some minor issues in PDB parsing library.
1) Until now I'd never seen a valid PDB where the DBI stream and the PDB Stream disagreed on the "Age" field. Because of that, we had code to assert that they matched. Recently though I was given a PDB where they disagreed, so this assumption has proven to be incorrect. Remove this check. 2) We were walking the entire list of hash values for types up front and then throwing away the values. For large PDBs this was a significant slow down. Remove this. With this patch, I can dump the list of all compilands from a 1.5GB PDB file in just a few seconds. llvm-svn: 303351
This commit is contained in:
parent
657899bad1
commit
5a83fb153f
|
@ -72,14 +72,6 @@ Error DbiStream::reload() {
|
|||
return make_error<RawError>(raw_error_code::feature_unsupported,
|
||||
"Unsupported DBI version.");
|
||||
|
||||
auto IS = Pdb.getPDBInfoStream();
|
||||
if (!IS)
|
||||
return IS.takeError();
|
||||
|
||||
if (Header->Age != IS->getAge())
|
||||
return make_error<RawError>(raw_error_code::corrupt_file,
|
||||
"DBI Age does not match PDB Age.");
|
||||
|
||||
if (Stream->getLength() !=
|
||||
sizeof(DbiStreamHeader) + Header->ModiSubstreamSize +
|
||||
Header->SecContrSubstreamSize + Header->SectionMapSize +
|
||||
|
|
|
@ -91,9 +91,6 @@ Error TpiStream::reload() {
|
|||
HSR.setOffset(Header->HashValueBuffer.Off);
|
||||
if (auto EC = HSR.readArray(HashValues, NumHashValues))
|
||||
return EC;
|
||||
std::vector<ulittle32_t> HashValueList;
|
||||
for (auto I : HashValues)
|
||||
HashValueList.push_back(I);
|
||||
|
||||
HSR.setOffset(Header->IndexOffsetBuffer.Off);
|
||||
uint32_t NumTypeIndexOffsets =
|
||||
|
|
Loading…
Reference in New Issue