From 0b520363433a1339fac9b37582e0f1bc8c5b04b2 Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 21 Feb 2014 02:28:47 +0000 Subject: [PATCH] LeakView: handle gdb lines mangled by mantis git-svn-id: trunk@44192 - --- components/leakview/leakinfo.pas | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/components/leakview/leakinfo.pas b/components/leakview/leakinfo.pas index 65baba1a12..50f5dfcfaf 100644 --- a/components/leakview/leakinfo.pas +++ b/components/leakview/leakinfo.pas @@ -253,7 +253,9 @@ begin // gdb line? i := Pos('#', s); - if (i > 0) and (i < 5) and (i < Length(s)) and (s[i+1] in ['0'..'9']) then begin + if (i < 1) and (copy(s,1,4) = '0000') then i := 4; // mantis mangled line + if (i > 0) and (i < 5) and (i < Length(s)) and (s[i+1] in ['0'..'9']) + then begin inc(i); while (i <= Length(s)) and (s[i] in ['0'..'9']) do inc(i); while (i <= Length(s)) and (s[i] in [' ', #9]) do inc(i); @@ -325,6 +327,14 @@ begin ( (pos(' at ', s) > 1) or (pos(' from ', s) > 1) ); exit; end; + if copy(s,1,4) = '0000' then begin // leave 3 digits for pos + // mantis mangled gdb ? + i := pos(':', s); + Result := ( ((i > 1) and (i < Length(s)) and (s[i+1] in ['0'..'9'])) or + (pos(' in ', s) > 1) ) and + ( (pos(' at ', s) > 1) or (pos(' from ', s) > 1) ); + exit; + end; i := 1; l := length(SubStr);