mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 21:59:19 +02:00
lcl: fix mem leak in icon save code
git-svn-id: trunk@17067 -
This commit is contained in:
parent
99d8fe4631
commit
25d2fc84b2
@ -996,7 +996,9 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
|
|||||||
SrcDesc: TRawImageDescription absolute SrcRawImg.Description;
|
SrcDesc: TRawImageDescription absolute SrcRawImg.Description;
|
||||||
DstDesc: TRawImageDescription absolute DstRawImg.Description;
|
DstDesc: TRawImageDescription absolute DstRawImg.Description;
|
||||||
SrcImage, DstImage: TLazIntfImage;
|
SrcImage, DstImage: TLazIntfImage;
|
||||||
|
NeedFreeData: Boolean;
|
||||||
begin
|
begin
|
||||||
|
NeedFreeData := True;
|
||||||
if (AIconImage.MaskHandle = 0)
|
if (AIconImage.MaskHandle = 0)
|
||||||
or not RawImage_FromBitmap(SrcRawImg, AIconImage.MaskHandle, 0)
|
or not RawImage_FromBitmap(SrcRawImg, AIconImage.MaskHandle, 0)
|
||||||
then begin
|
then begin
|
||||||
@ -1004,6 +1006,7 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
|
|||||||
SrcRawImg.Description := ARawImg.Description.GetDescriptionFromMask;
|
SrcRawImg.Description := ARawImg.Description.GetDescriptionFromMask;
|
||||||
SrcRawImg.Data := ARawImg.Mask;
|
SrcRawImg.Data := ARawImg.Mask;
|
||||||
SrcRawImg.DataSize := ARawImg.MaskSize;
|
SrcRawImg.DataSize := ARawImg.MaskSize;
|
||||||
|
NeedFreeData := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
DstRawImg.Init;
|
DstRawImg.Init;
|
||||||
@ -1034,6 +1037,8 @@ procedure TCustomIcon.WriteStream(AStream: TMemoryStream);
|
|||||||
|
|
||||||
SrcImage.Free;
|
SrcImage.Free;
|
||||||
DstImage.Free;
|
DstImage.Free;
|
||||||
|
if NeedFreeData then
|
||||||
|
SrcRawImg.FreeData;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
Loading…
Reference in New Issue
Block a user