protected DwarfMethodSource GetMethodSource(DieSubprogram subprog, int start_row, int end_row) { DwarfMethodSource source; source = (DwarfMethodSource) method_source_hash [subprog.Offset]; if (source != null) return source; source = new DwarfMethodSource (subprog, start_row, end_row); method_source_hash.Add (subprog.Offset, source); return source; }
void read_line_numbers() { if (source != null) return; subprog.Resolve (); SourceAddress start = engine.Lookup (StartAddress); SourceAddress end = engine.Lookup (EndAddress); if ((start == null) || (end == null)) return; start_row = start.Row; end_row = end.Row; SetMethodBounds (StartAddress + start.LineRange, EndAddress - end.LineOffset); source = subprog.dwarf.GetMethodSource (subprog, start_row, end_row); subprog.dwarf.method_hash.Add (source.Handle, this); }