Debugger: Reorder unit finishing.
Type units need to be finished before compilation units to ensure that e.g. modified types have their base types already set by the time we get to compilation unit attributes.
This commit is contained in:
@@ -575,16 +575,16 @@ DwarfFile::FinishLoading()
|
||||
return fFinishError;
|
||||
|
||||
status_t error;
|
||||
for (int32 i = 0; CompilationUnit* unit = fCompilationUnits.ItemAt(i);
|
||||
i++) {
|
||||
error = _FinishUnit(unit);
|
||||
for (TypeUnitTable::Iterator it = fTypeUnits.GetIterator();
|
||||
TypeUnitTableEntry* entry = it.Next();) {
|
||||
error = _FinishUnit(entry->unit);
|
||||
if (error != B_OK)
|
||||
return fFinishError = error;
|
||||
}
|
||||
|
||||
for (TypeUnitTable::Iterator it = fTypeUnits.GetIterator();
|
||||
TypeUnitTableEntry* entry = it.Next();) {
|
||||
error = _FinishUnit(entry->unit);
|
||||
for (int32 i = 0; CompilationUnit* unit = fCompilationUnits.ItemAt(i);
|
||||
i++) {
|
||||
error = _FinishUnit(unit);
|
||||
if (error != B_OK)
|
||||
return fFinishError = error;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user