@@ -694,18 +694,18 @@ void SymbolFileBreakpad::ParseLineTableAndSupportFiles(CompileUnit &cu,
694
694
" How did we create compile units without a base address?" );
695
695
696
696
SupportFileMap map;
697
- data. line_table_up = std::make_unique<LineTable>(&cu) ;
698
- std::unique_ptr<LineSequence> line_seq_up (
699
- data. line_table_up -> CreateLineSequenceContainer () );
697
+ std::vector<std::unique_ptr<LineSequence>> sequences ;
698
+ std::unique_ptr<LineSequence> line_seq_up =
699
+ LineTable:: CreateLineSequenceContainer ();
700
700
llvm::Optional<addr_t > next_addr;
701
701
auto finish_sequence = [&]() {
702
- data. line_table_up -> AppendLineEntryToSequence (
702
+ LineTable:: AppendLineEntryToSequence (
703
703
line_seq_up.get (), *next_addr, /* line*/ 0 , /* column*/ 0 ,
704
704
/* file_idx*/ 0 , /* is_start_of_statement*/ false ,
705
705
/* is_start_of_basic_block*/ false , /* is_prologue_end*/ false ,
706
706
/* is_epilogue_begin*/ false , /* is_terminal_entry*/ true );
707
- data. line_table_up -> InsertSequence (line_seq_up. get ( ));
708
- line_seq_up-> Clear ();
707
+ sequences. push_back ( std::move (line_seq_up ));
708
+ line_seq_up = LineTable::CreateLineSequenceContainer ();
709
709
};
710
710
711
711
LineIterator It (*m_objfile_sp, Record::Func, data.bookmark ),
@@ -722,7 +722,7 @@ void SymbolFileBreakpad::ParseLineTableAndSupportFiles(CompileUnit &cu,
722
722
// Discontiguous entries. Finish off the previous sequence and reset.
723
723
finish_sequence ();
724
724
}
725
- data. line_table_up -> AppendLineEntryToSequence (
725
+ LineTable:: AppendLineEntryToSequence (
726
726
line_seq_up.get (), record->Address , record->LineNum , /* column*/ 0 ,
727
727
map[record->FileNum ], /* is_start_of_statement*/ true ,
728
728
/* is_start_of_basic_block*/ false , /* is_prologue_end*/ false ,
@@ -731,6 +731,7 @@ void SymbolFileBreakpad::ParseLineTableAndSupportFiles(CompileUnit &cu,
731
731
}
732
732
if (next_addr)
733
733
finish_sequence ();
734
+ data.line_table_up = std::make_unique<LineTable>(&cu, std::move (sequences));
734
735
data.support_files = map.translate (cu.GetPrimaryFile (), *m_files);
735
736
}
736
737
0 commit comments