diff options
Diffstat (limited to 'tools/llvm-pdbdump/PdbYaml.cpp')
-rw-r--r-- | tools/llvm-pdbdump/PdbYaml.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/tools/llvm-pdbdump/PdbYaml.cpp b/tools/llvm-pdbdump/PdbYaml.cpp index d6ba7d6454593..6527bec31a77c 100644 --- a/tools/llvm-pdbdump/PdbYaml.cpp +++ b/tools/llvm-pdbdump/PdbYaml.cpp @@ -371,16 +371,14 @@ void MappingContextTraits<PdbInlineeInfo, SerializationContext>::mapping( void MappingContextTraits<PdbTpiRecord, pdb::yaml::SerializationContext>:: mapping(IO &IO, pdb::yaml::PdbTpiRecord &Obj, pdb::yaml::SerializationContext &Context) { - codeview::TypeVisitorCallbackPipeline Pipeline; - codeview::TypeDeserializer Deserializer; - codeview::TypeSerializer Serializer(Context.Allocator); - pdb::TpiHashUpdater Hasher; if (IO.outputting()) { // For PDB to Yaml, deserialize into a high level record type, then dump it. - Pipeline.addCallbackToPipeline(Deserializer); - Pipeline.addCallbackToPipeline(Context.Dumper); + consumeError(codeview::visitTypeRecord(Obj.Record, Context.Dumper)); } else { + codeview::TypeVisitorCallbackPipeline Pipeline; + codeview::TypeSerializer Serializer(Context.Allocator); + pdb::TpiHashUpdater Hasher; // For Yaml to PDB, extract from the high level record type, then write it // to bytes. @@ -391,9 +389,9 @@ void MappingContextTraits<PdbTpiRecord, pdb::yaml::SerializationContext>:: Pipeline.addCallbackToPipeline(Context.Dumper); Pipeline.addCallbackToPipeline(Serializer); Pipeline.addCallbackToPipeline(Hasher); + consumeError(codeview::visitTypeRecord(Obj.Record, Pipeline, + codeview::VDS_BytesExternal)); } - codeview::CVTypeVisitor Visitor(Pipeline); - consumeError(Visitor.visitTypeRecord(Obj.Record)); Context.ActiveSerializer = nullptr; } |