mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-20 12:19:31 +02:00
Merged revision(s) 61200 #5f6aa28d51, 61202 #76b9420caf, 61205 #0f27442368, 61210 #e721ee16cc from trunk:
LCL: fix mem-leak in TCustomIcon.AssignImage / Temporary mask is not freed. Issue #0035562 ........ LCL: fix mem-leak in TRasterImage.LoadFromRawImage Issue #0035372 / Behaviour change: if source and dest are equal, then data is kept as it is. Previously new mem of the same size was allocated, but no data written to it. Previous behaviour appears to be buggy since it did NOT load anything, so new behaviour is fine. (Only affects ADataOwner=False.) ........ LCL: TRasterImage.LoadFromRawImage / revision 61202 #76b9420caf (fixed memleak): Fix check for source = target // Also means the behaviour is/stays as before rev 61202 #76b9420caf ........ LCL: TRasterImage.LoadFromRawImage / revision 61202 #76b9420caf (fixed memleak): Fix check for source = target // Also means the behaviour is/stays as before rev 61202 #76b9420caf ........ git-svn-id: branches/fixes_2_0@61358 -
This commit is contained in:
parent
9a272ef64b
commit
d54eabffb6
@ -449,9 +449,9 @@ begin
|
||||
NewImage.FImage.Mask := GetMem(NewImage.FImage.MaskSize);
|
||||
Move(RawMsk.Mask^, NewImage.FImage.Mask^, NewImage.FImage.MaskSize);
|
||||
|
||||
// prevent cleanup
|
||||
RawMsk.MaskSize := 0;
|
||||
RawMsk.Mask := nil;
|
||||
//// prevent cleanup
|
||||
//RawMsk.MaskSize := 0;
|
||||
//RawMsk.Mask := nil;
|
||||
end;
|
||||
RawMsk.FreeData;
|
||||
end
|
||||
|
@ -586,6 +586,22 @@ begin
|
||||
if AImage.Description.Format = ricfNone then Exit; // empty image
|
||||
|
||||
img := GetRawImagePtr;
|
||||
|
||||
// Make sure, we do not free AImage.Data or Mask
|
||||
if img^.Data = AImage.Data then begin
|
||||
img^.Data := nil;
|
||||
img^.DataSize := 0;
|
||||
end;
|
||||
if img^.Mask = AImage.Mask then begin
|
||||
img^.Mask := nil;
|
||||
img^.MaskSize := 0;
|
||||
end;
|
||||
if img^.Palette = AImage.Palette then begin
|
||||
img^.Palette := nil;
|
||||
img^.PaletteSize := 0;
|
||||
end;
|
||||
img^.FreeData;
|
||||
|
||||
img^.Description := AImage.Description;
|
||||
if ADataOwner
|
||||
then begin
|
||||
|
Loading…
Reference in New Issue
Block a user