@@ -3119,27 +3119,6 @@ struct DIEVisitor {
3119
3119
SmallVector<AbbrevContent> AbbrevContents;
3120
3120
};
3121
3121
3122
- DIEVisitor () = delete ;
3123
-
3124
- DIEVisitor (ArrayRef<StringRef> AbbrevEntries,
3125
- BinaryStreamReader DistinctReader, StringRef DistinctData,
3126
- std::function<void (StringRef)> HeaderCallback,
3127
- std::function<void (dwarf::Tag, uint64_t )> StartTagCallback,
3128
- std::function<void (dwarf::Attribute, dwarf::Form, StringRef, bool )>
3129
- AttrCallback,
3130
- std::function<void (bool )> EndTagCallback,
3131
- std::function<void (StringRef)> NewBlockCallback)
3132
- : AbbrevEntries(AbbrevEntries), DistinctReader(DistinctReader),
3133
- DistinctData (DistinctData), HeaderCallback(HeaderCallback),
3134
- StartTagCallback(StartTagCallback), AttrCallback(AttrCallback),
3135
- EndTagCallback(EndTagCallback), NewBlockCallback(NewBlockCallback) {
3136
- AbbrevEntryCache.reserve (AbbrevEntries.size ());
3137
- for (unsigned I = 0 ; I < AbbrevEntries.size (); I++) {
3138
- if (Error E = materializeAbbrevDIE (encodeAbbrevIndex (I)))
3139
- report_fatal_error (std::move (E));
3140
- }
3141
- }
3142
-
3143
3122
Error visitDIERef (DIEDedupeTopLevelRef Ref);
3144
3123
Error visitDIERef (ArrayRef<DIEDataRef> &DIEChildrenStack);
3145
3124
Error visitDIEAttrs (BinaryStreamReader &DataReader, StringRef DIEData,
@@ -3324,6 +3303,10 @@ static void popStack(BinaryStreamReader &Reader, StringRef &Data,
3324
3303
// Visit DIERef CAS objects and materialize them.
3325
3304
Error DIEVisitor::visitDIERef (ArrayRef<DIEDataRef> &DIEChildrenStack) {
3326
3305
3306
+ for (unsigned I = 0 ; I < AbbrevEntries.size (); I++)
3307
+ if (Error E = materializeAbbrevDIE (encodeAbbrevIndex (I)))
3308
+ return E;
3309
+
3327
3310
std::stack<std::pair<StringRef, unsigned >> StackOfNodes;
3328
3311
auto Data = DIEChildrenStack.empty () ? StringRef ()
3329
3312
: DIEChildrenStack.front ().getData ();
@@ -3451,8 +3434,14 @@ Error mccasformats::v1::visitDebugInfo(
3451
3434
HeaderCallback (toStringRef (HeaderData));
3452
3435
3453
3436
append_range (TotAbbrevEntries, LoadedTopRef->AbbrevEntries );
3454
- DIEVisitor Visitor{TotAbbrevEntries, DistinctReader, UncompressedDistinctData,
3455
- HeaderCallback, StartTagCallback, AttrCallback,
3456
- EndTagCallback, NewBlockCallback};
3437
+ DIEVisitor Visitor{{},
3438
+ TotAbbrevEntries,
3439
+ DistinctReader,
3440
+ UncompressedDistinctData,
3441
+ HeaderCallback,
3442
+ StartTagCallback,
3443
+ AttrCallback,
3444
+ EndTagCallback,
3445
+ NewBlockCallback};
3457
3446
return Visitor.visitDIERef (LoadedTopRef->RootDIE );
3458
3447
}
0 commit comments