Mono.Debugger.Backend.Mono.MonoSymbolFile.MonoMethodLineNumberTable.generate_line_number C# (CSharp) Method

generate_line_number() private method

private generate_line_number ( List lines, TargetAddress address, int offset, int &last_line ) : void
lines List
address Mono.Debugger.TargetAddress
offset int
last_line int
return void
            void generate_line_number(List<LineEntry> lines, TargetAddress address,
						   int offset, ref int last_line)
            {
                C.LineNumberTable lnt = entry.GetLineNumberTable ();
                C.LineNumberEntry[] line_numbers = lnt.LineNumbers;

                for (int i = line_numbers.Length - 1; i >= 0; i--) {
                    C.LineNumberEntry lne = line_numbers [i];

                    if (lne.Offset > offset)
                        continue;

                    if (lne.Row != last_line) {
                        int file = lne.File != entry.CompileUnit.SourceFile.Index ? lne.File : 0;
                        bool hidden = lne.IsHidden;

                        SourceRange? range = null;
                        if (lne.SourceRange != null)
                            range = new SourceRange (lne.SourceRange.StartLine, lne.SourceRange.EndLine,
                                         lne.SourceRange.StartColumn, lne.SourceRange.EndColumn);

                        lines.Add (new LineEntry (address, file, lne.Row, hidden, range));
                        last_line = lne.Row;
                    }

                    break;
                }
            }