summaryrefslogtreecommitdiff
path: root/tools/llvm-pdbdump/PdbYaml.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm-pdbdump/PdbYaml.cpp')
-rw-r--r--tools/llvm-pdbdump/PdbYaml.cpp14
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;
}