lcl: fix mem leak in icon save code

git-svn-id: trunk@17067 -
This commit is contained in:
paul 2008-10-20 05:02:52 +00:00
parent 99d8fe4631
commit 25d2fc84b2

View File

@ -996,7 +996,9 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
SrcDesc: TRawImageDescription absolute SrcRawImg.Description;
DstDesc: TRawImageDescription absolute DstRawImg.Description;
SrcImage, DstImage: TLazIntfImage;
NeedFreeData: Boolean;
begin
NeedFreeData := True;
if (AIconImage.MaskHandle = 0)
or not RawImage_FromBitmap(SrcRawImg, AIconImage.MaskHandle, 0)
then begin
@ -1004,6 +1006,7 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
SrcRawImg.Description := ARawImg.Description.GetDescriptionFromMask;
SrcRawImg.Data := ARawImg.Mask;
SrcRawImg.DataSize := ARawImg.MaskSize;
NeedFreeData := False;
end;
DstRawImg.Init;
@ -1034,6 +1037,8 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
SrcImage.Free;
DstImage.Free;
if NeedFreeData then
SrcRawImg.FreeData;
end;
var