mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 21:59:16 +02:00
Merged revision(s) 61808 #e948c7b47a, 61926 #d98120d75f from trunk:
LeakView: fix double free crash. Introduced in r61711 #01fb06cf22 by using TFPGObjectList which does auto free objects ........ LeakView: fix crash due to double free. ........ git-svn-id: branches/fixes_2_0@61927 -
This commit is contained in:
parent
580c5a3a93
commit
8788f97e77
@ -272,12 +272,13 @@ begin
|
|||||||
// removing duplicates
|
// removing duplicates
|
||||||
for i := 0 to fItems.Count - 1 do begin
|
for i := 0 to fItems.Count - 1 do begin
|
||||||
trace := TStackTrace(fItems[i]);
|
trace := TStackTrace(fItems[i]);
|
||||||
|
if trace = nil then
|
||||||
|
continue;
|
||||||
s := GetHashString(trace);
|
s := GetHashString(trace);
|
||||||
hashed := TStackTrace(hash.Items[s]);
|
hashed := TStackTrace(hash.Items[s]);
|
||||||
if Assigned(hashed) then begin
|
if Assigned(hashed) then begin
|
||||||
inc(hashed.LeakCount);
|
inc(hashed.LeakCount);
|
||||||
trace.Free; // remove from list
|
fItems[i] := nil; // this call destroy on the old trace object
|
||||||
fItems[i] := nil;
|
|
||||||
end else
|
end else
|
||||||
hash.Add(s, trace)
|
hash.Add(s, trace)
|
||||||
end;
|
end;
|
||||||
@ -304,8 +305,6 @@ procedure THeapTrcViewForm.ClearItems;
|
|||||||
var
|
var
|
||||||
i : integer;
|
i : integer;
|
||||||
begin
|
begin
|
||||||
for i := 0 to fItems.Count - 1 do
|
|
||||||
TObject(fItems[i]).Free;
|
|
||||||
fItems.Clear;
|
fItems.Clear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user