mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 00:46:02 +02:00
Avoid memory leak on trecorddef.variantrecorddesc field
git-svn-id: trunk@34363 -
This commit is contained in:
parent
eefdf135a5
commit
dfeb6e3ae1
@ -4450,7 +4450,27 @@ implementation
|
|||||||
|
|
||||||
|
|
||||||
destructor trecorddef.destroy;
|
destructor trecorddef.destroy;
|
||||||
|
|
||||||
|
procedure free_variantrecdesc(var variantrecdesc : pvariantrecdesc);
|
||||||
|
var
|
||||||
|
i : longint;
|
||||||
|
begin
|
||||||
|
while assigned(variantrecdesc) do
|
||||||
|
begin
|
||||||
|
for i:=0 to high(variantrecdesc^.branches) do
|
||||||
|
begin
|
||||||
|
free_variantrecdesc(variantrecdesc^.branches[i].nestedvariant);
|
||||||
|
SetLength(variantrecdesc^.branches[i].values,0);
|
||||||
|
end;
|
||||||
|
SetLength(variantrecdesc^.branches,0);
|
||||||
|
dispose(variantrecdesc);
|
||||||
|
variantrecdesc:=nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
if assigned(variantrecdesc) then
|
||||||
|
free_variantrecdesc(variantrecdesc);
|
||||||
if assigned(symtable) then
|
if assigned(symtable) then
|
||||||
begin
|
begin
|
||||||
symtable.free;
|
symtable.free;
|
||||||
|
Loading…
Reference in New Issue
Block a user