From 1b88845ce1b7731a062c3d1fcc80d201c70e4a44 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 15 Sep 2020 18:50:34 -0700 Subject: [PATCH] [PDB] Drop LF_PRECOMP from debugTypes earlier This is a minor simplification to avoid firing up a BinaryStreamReader and CVType parser. --- lld/COFF/DebugTypes.cpp | 10 ---------- lld/COFF/InputFiles.cpp | 2 ++ 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/lld/COFF/DebugTypes.cpp b/lld/COFF/DebugTypes.cpp index b8c488f..3a9bd83 100644 --- a/lld/COFF/DebugTypes.cpp +++ b/lld/COFF/DebugTypes.cpp @@ -447,16 +447,6 @@ UsePrecompSource::mergeDebugT(TypeMerger *m, CVIndexMap *indexMap) { if (!e) return e.takeError(); - // Drop LF_PRECOMP record from the input stream, as it has been replaced - // with the precompiled headers Type stream in the mergeInPrecompHeaderObj() - // call above. Note that we can't just call Types.drop_front(), as we - // explicitly want to rebase the stream. - CVTypeArray types; - BinaryStreamReader reader(file->debugTypes, support::little); - cantFail(reader.readArray(types, reader.getLength())); - auto firstType = types.begin(); - file->debugTypes = file->debugTypes.drop_front(firstType->RecordData.size()); - return TpiSource::mergeDebugT(m, indexMap); } diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp index a692dfe..6522d68 100644 --- a/lld/COFF/InputFiles.cpp +++ b/lld/COFF/InputFiles.cpp @@ -821,6 +821,8 @@ void ObjFile::initializeDependencies() { PrecompRecord precomp = cantFail( TypeDeserializer::deserializeAs(firstType->data())); debugTypesObj = makeUsePrecompSource(this, precomp); + // Drop the LF_PRECOMP record from the input stream. + debugTypes = debugTypes.drop_front(firstType->RecordData.size()); return; } -- 2.7.4