mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 16:56:01 +02:00
Fixes a crash caused by the new mask code
git-svn-id: trunk@36598 -
This commit is contained in:
parent
d1f4f3fa36
commit
004ac9d859
@ -354,6 +354,7 @@ begin
|
||||
Result := False;
|
||||
ABitmap := 0;
|
||||
AMask := 0;
|
||||
NewMaskData := nil;
|
||||
|
||||
// Copy the data (see bug 21274 as to why it is necessary)
|
||||
if ARawImage.DataSize > 0 then
|
||||
@ -373,18 +374,7 @@ begin
|
||||
ABitmap := HBITMAP(lBitmap);
|
||||
System.Move(ARawImage, lRawImage, SizeOf(TRawImage));
|
||||
lRawImage.Data := NewData;
|
||||
|
||||
// The Mask
|
||||
if (not ASkipMask) and (ARawImage.Mask <> nil) and (ARawImage.MaskSize > 0) then
|
||||
begin
|
||||
NewMaskData := GetMem(ARawImage.MaskSize);
|
||||
System.Move(ARawImage.Mask^, NewMaskData^, ARawImage.MaskSize);
|
||||
end
|
||||
else
|
||||
NewMaskData := nil;
|
||||
|
||||
lRawImage.Mask := NewMaskData;
|
||||
|
||||
lRawImage.Mask := nil;//Setting it to NewMaskData crashes
|
||||
lRawImage.Palette := nil;
|
||||
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
||||
Result := ABitmap <> 0;
|
||||
@ -392,10 +382,20 @@ begin
|
||||
// Also create a bitmap for the mask
|
||||
if (not ASkipMask) then
|
||||
begin
|
||||
// The Mask data
|
||||
if (ARawImage.Mask <> nil) and (ARawImage.MaskSize > 0) then
|
||||
begin
|
||||
NewMaskData := GetMem(ARawImage.MaskSize);
|
||||
System.Move(ARawImage.Mask^, NewMaskData^, ARawImage.MaskSize);
|
||||
end
|
||||
else
|
||||
NewMaskData := nil;
|
||||
|
||||
lBitmap := TCDBitmap.Create;
|
||||
AMask := HBITMAP(lBitmap);
|
||||
lRawImage.Description.Init_BPP1(ARawImage.Description.Width, ARawImage.Description.Height);
|
||||
lRawImage.Data := NewMaskData;
|
||||
lRawImage.DataSize := ARawImage.MaskSize;
|
||||
lRawImage.Mask := nil;
|
||||
lRawImage.Palette := nil;
|
||||
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
||||
|
Loading…
Reference in New Issue
Block a user