You've already forked lazarus-ccr
LazBarcodes: Fix memory leak in Maxicode. Issue #39030, patch by Joeny Ang
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8363 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -86,10 +86,10 @@ end;
|
|||||||
|
|
||||||
procedure ZBarcode_Delete(symbol: PointerTo_zint_symbol);
|
procedure ZBarcode_Delete(symbol: PointerTo_zint_symbol);
|
||||||
var
|
var
|
||||||
l: PointerTo_zint_render_line;
|
l, line: PointerTo_zint_render_line;
|
||||||
line: PointerTo_zint_render_line;
|
s, lString: PointerTo_zint_render_string;
|
||||||
s: PointerTo_zint_render_string;
|
h, hexagon: PointerTo_zint_render_hexagon;
|
||||||
TheString: PointerTo_zint_render_string;
|
r, ring: PointerTo_zint_render_ring;
|
||||||
begin
|
begin
|
||||||
if Boolean(symbol^.bitmap <> nil) then
|
if Boolean(symbol^.bitmap <> nil) then
|
||||||
begin
|
begin
|
||||||
@ -102,19 +102,33 @@ begin
|
|||||||
begin
|
begin
|
||||||
l := line;
|
l := line;
|
||||||
line := line^.next;
|
line := line^.next;
|
||||||
FreeMem (l);
|
FreeMem(l);
|
||||||
end;
|
end;
|
||||||
TheString := symbol^.rendered^.strings;
|
hexagon := symbol^.rendered^.hexagons;
|
||||||
while Assigned(TheString) do
|
while Assigned(hexagon) do
|
||||||
begin
|
begin
|
||||||
s := TheString;
|
h := hexagon;
|
||||||
TheString := TheString^.next;
|
hexagon := h^.next;
|
||||||
FreeMem (s^.text);
|
FreeMem(h);
|
||||||
FreeMem (s);
|
|
||||||
end;
|
end;
|
||||||
FreeMem (symbol^.rendered);
|
ring := symbol^.rendered^.rings;
|
||||||
|
while Assigned(ring) do
|
||||||
|
begin
|
||||||
|
r := ring;
|
||||||
|
ring := r^.Next;
|
||||||
|
FreeMem(r);
|
||||||
|
end;
|
||||||
|
lString := symbol^.rendered^.strings;
|
||||||
|
while Assigned(lString) do
|
||||||
|
begin
|
||||||
|
s := lString;
|
||||||
|
lString := lString^.next;
|
||||||
|
FreeMem(s^.text);
|
||||||
|
FreeMem(s);
|
||||||
|
end;
|
||||||
|
FreeMem(symbol^.rendered);
|
||||||
end;
|
end;
|
||||||
FreeMem (symbol);
|
FreeMem(symbol);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Reference in New Issue
Block a user