@@ -3107,27 +3107,6 @@ struct DIEVisitor {
3107
3107
SmallVector<AbbrevContent> AbbrevContents;
3108
3108
};
3109
3109
3110
- DIEVisitor () = delete ;
3111
-
3112
- DIEVisitor (ArrayRef<StringRef> AbbrevEntries,
3113
- BinaryStreamReader DistinctReader, StringRef DistinctData,
3114
- std::function<void (StringRef)> HeaderCallback,
3115
- std::function<void (dwarf::Tag, uint64_t )> StartTagCallback,
3116
- std::function<void (dwarf::Attribute, dwarf::Form, StringRef, bool )>
3117
- AttrCallback,
3118
- std::function<void (bool )> EndTagCallback,
3119
- std::function<void (StringRef)> NewBlockCallback)
3120
- : AbbrevEntries(AbbrevEntries), DistinctReader(DistinctReader),
3121
- DistinctData (DistinctData), HeaderCallback(HeaderCallback),
3122
- StartTagCallback(StartTagCallback), AttrCallback(AttrCallback),
3123
- EndTagCallback(EndTagCallback), NewBlockCallback(NewBlockCallback) {
3124
- AbbrevEntryCache.reserve (AbbrevEntries.size ());
3125
- for (unsigned I = 0 ; I < AbbrevEntries.size (); I++) {
3126
- if (Error E = materializeAbbrevDIE (encodeAbbrevIndex (I)))
3127
- report_fatal_error (std::move (E));
3128
- }
3129
- }
3130
-
3131
3110
Error visitDIERef (DIEDedupeTopLevelRef Ref);
3132
3111
Error visitDIERef (ArrayRef<DIEDataRef> &DIEChildrenStack);
3133
3112
Error visitDIEAttrs (BinaryStreamReader &DataReader, StringRef DIEData,
@@ -3312,6 +3291,10 @@ static void popStack(BinaryStreamReader &Reader, StringRef &Data,
3312
3291
// Visit DIERef CAS objects and materialize them.
3313
3292
Error DIEVisitor::visitDIERef (ArrayRef<DIEDataRef> &DIEChildrenStack) {
3314
3293
3294
+ for (unsigned I = 0 ; I < AbbrevEntries.size (); I++)
3295
+ if (Error E = materializeAbbrevDIE (encodeAbbrevIndex (I)))
3296
+ return E;
3297
+
3315
3298
std::stack<std::pair<StringRef, unsigned >> StackOfNodes;
3316
3299
auto Data = DIEChildrenStack.empty () ? StringRef ()
3317
3300
: DIEChildrenStack.front ().getData ();
@@ -3439,9 +3422,14 @@ Error mccasformats::v1::visitDebugInfo(
3439
3422
HeaderCallback (toStringRef (HeaderData));
3440
3423
3441
3424
append_range (TotAbbrevEntries, LoadedTopRef->AbbrevEntries );
3442
- DIEVisitor Visitor{TotAbbrevEntries, DistinctReader,
3443
- UncompressedDistinctData, HeaderCallback,
3444
- StartTagCallback, AttrCallback,
3445
- EndTagCallback, NewBlockCallback};
3425
+ DIEVisitor Visitor{{},
3426
+ TotAbbrevEntries,
3427
+ DistinctReader,
3428
+ UncompressedDistinctData,
3429
+ HeaderCallback,
3430
+ StartTagCallback,
3431
+ AttrCallback,
3432
+ EndTagCallback,
3433
+ NewBlockCallback};
3446
3434
return Visitor.visitDIERef (LoadedTopRef->RootDIE );
3447
3435
}
0 commit comments