codetools: fixed mem leak, bug #14646

git-svn-id: trunk@21828 -
This commit is contained in:
mattias 2009-09-22 21:28:45 +00:00
parent da2c5cb914
commit 53a1e55eb8
2 changed files with 14 additions and 12 deletions

View File

@ -625,14 +625,16 @@ begin
if SourceExpressionEvaluator<>nil then begin
FCount:=SourceExpressionEvaluator.Count;
Size:=SizeOf(AnsiString) * FCount;
GetMem(FNames,Size);
FillChar(Pointer(FNames)^,Size,0);
GetMem(FValues,Size);
FillChar(Pointer(FValues)^,Size,0);
FCapacity:=FCount;
for i:=0 to FCount-1 do begin
FNames[i]:=SourceExpressionEvaluator.FNames[i];
FValues[i]:=SourceExpressionEvaluator.FValues[i];
if Size>0 then begin
GetMem(FNames,Size);
FillByte(Pointer(FNames)^,Size,0);
GetMem(FValues,Size);
FillByte(Pointer(FValues)^,Size,0);
FCapacity:=FCount;
for i:=0 to FCount-1 do begin
FNames[i]:=SourceExpressionEvaluator.FNames[i];
FValues[i]:=SourceExpressionEvaluator.FValues[i];
end;
end;
IncreaseChangeStamp;
end;

View File

@ -721,10 +721,10 @@ end;
destructor TLinkScanner.Destroy;
begin
Clear;
FIncludeStack.Free;
FSourceChangeSteps.Free;
Values.Free;
FInitValues.Free;
FreeAndNil(FIncludeStack);
FreeAndNil(FSourceChangeSteps);
FreeAndNil(Values);
FreeAndNil(FInitValues);
ReAllocMem(FLinks,0);
inherited Destroy;
end;