mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 03:59:13 +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;
|
Result := False;
|
||||||
ABitmap := 0;
|
ABitmap := 0;
|
||||||
AMask := 0;
|
AMask := 0;
|
||||||
|
NewMaskData := nil;
|
||||||
|
|
||||||
// Copy the data (see bug 21274 as to why it is necessary)
|
// Copy the data (see bug 21274 as to why it is necessary)
|
||||||
if ARawImage.DataSize > 0 then
|
if ARawImage.DataSize > 0 then
|
||||||
@ -373,18 +374,7 @@ begin
|
|||||||
ABitmap := HBITMAP(lBitmap);
|
ABitmap := HBITMAP(lBitmap);
|
||||||
System.Move(ARawImage, lRawImage, SizeOf(TRawImage));
|
System.Move(ARawImage, lRawImage, SizeOf(TRawImage));
|
||||||
lRawImage.Data := NewData;
|
lRawImage.Data := NewData;
|
||||||
|
lRawImage.Mask := nil;//Setting it to NewMaskData crashes
|
||||||
// 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.Palette := nil;
|
lRawImage.Palette := nil;
|
||||||
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
||||||
Result := ABitmap <> 0;
|
Result := ABitmap <> 0;
|
||||||
@ -392,10 +382,20 @@ begin
|
|||||||
// Also create a bitmap for the mask
|
// Also create a bitmap for the mask
|
||||||
if (not ASkipMask) then
|
if (not ASkipMask) then
|
||||||
begin
|
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;
|
lBitmap := TCDBitmap.Create;
|
||||||
AMask := HBITMAP(lBitmap);
|
AMask := HBITMAP(lBitmap);
|
||||||
lRawImage.Description.Init_BPP1(ARawImage.Description.Width, ARawImage.Description.Height);
|
lRawImage.Description.Init_BPP1(ARawImage.Description.Width, ARawImage.Description.Height);
|
||||||
lRawImage.Data := NewMaskData;
|
lRawImage.Data := NewMaskData;
|
||||||
|
lRawImage.DataSize := ARawImage.MaskSize;
|
||||||
lRawImage.Mask := nil;
|
lRawImage.Mask := nil;
|
||||||
lRawImage.Palette := nil;
|
lRawImage.Palette := nil;
|
||||||
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
lBitmap.Image := TLazIntfImage.Create(lRawImage, True);
|
||||||
|
Loading…
Reference in New Issue
Block a user