mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 11:29:27 +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;
|
||||
|
||||
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
|
||||
if assigned(variantrecdesc) then
|
||||
free_variantrecdesc(variantrecdesc);
|
||||
if assigned(symtable) then
|
||||
begin
|
||||
symtable.free;
|
||||
|
Loading…
Reference in New Issue
Block a user