mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-26 13:09:14 +02:00
lcl: safer gdi handles typecasting
git-svn-id: trunk@15214 -
This commit is contained in:
parent
394a35359a
commit
829ed3c0f8
@ -21,7 +21,7 @@
|
||||
|
||||
procedure TBrushHandleCache.RemoveItem(Item: TResourceCacheItem);
|
||||
begin
|
||||
DeleteObject(Item.Handle);
|
||||
DeleteObject(HGIOBJ(Item.Handle));
|
||||
inherited RemoveItem(Item);
|
||||
end;
|
||||
|
||||
@ -179,7 +179,7 @@ begin
|
||||
CacheItem.DecreaseRefCount;
|
||||
FBrushHandleCached := False;
|
||||
end else
|
||||
DeleteObject(FReference.Handle);
|
||||
DeleteObject(HGDIOBJ(FReference.Handle));
|
||||
FReference._lclHandle := 0;
|
||||
end;
|
||||
|
||||
|
@ -130,7 +130,7 @@ var
|
||||
begin
|
||||
//DebugLn('[TCanvas.CreateBrush] ',Classname,' Self=',DbgS(Self)
|
||||
// ,' Brush=',DbgS(Brush));
|
||||
OldHandle := SelectObject(FHandle, Brush.Reference.Handle);
|
||||
OldHandle := SelectObject(FHandle, HGDIOBJ(Brush.Reference.Handle));
|
||||
//debugln('TCanvas.CreateBrush ',ClassName,' Self=',DbgS(Self),' OldHandle=',DbgS(OldHandle),8),' NewHandle=',DbgS(Brush.Handle),' FSavedBrushHandle=',DbgS(Cardinal(FSavedBrushHandle));
|
||||
if (OldHandle <> Brush.Reference.Handle) and (FSavedBrushHandle=0) then
|
||||
FSavedBrushHandle := OldHandle;
|
||||
@ -175,7 +175,7 @@ const
|
||||
begin
|
||||
//DebugLn('[TCanvas.CreatePen] ',Classname,' Self=',DbgS(Self)
|
||||
// ,' Pen=',DbgS(Pen));
|
||||
OldHandle := SelectObject(FHandle, Pen.Reference.Handle);
|
||||
OldHandle := SelectObject(FHandle, HGDIOBJ(Pen.Reference.Handle));
|
||||
if (OldHandle <> Pen.Reference.Handle) and (FSavedPenHandle=0) then
|
||||
FSavedPenHandle := OldHandle;
|
||||
MoveTo(PenPos.X, PenPos.Y);
|
||||
@ -196,7 +196,7 @@ begin
|
||||
// The first time the font handle is selected, the default font handle
|
||||
// is returned. Save this font handle to restore it later in DeselectHandles.
|
||||
// The TFont will call DeleteObject itself, so we never need to call it.
|
||||
OldHandle := SelectObject(FHandle, Font.Reference.Handle);
|
||||
OldHandle := SelectObject(FHandle, HGDIOBJ(Font.Reference.Handle));
|
||||
//DebugLn(['TCanvas.CreateFont OldHandle=',dbghex(OldHandle),' Font.Handle=',dbghex(Font.Handle)]);
|
||||
if (OldHandle <> Font.Reference.Handle) and (FSavedFontHandle=0) then
|
||||
FSavedFontHandle := OldHandle;
|
||||
@ -211,7 +211,7 @@ procedure TCanvas.CreateRegion;
|
||||
var
|
||||
OldHandle: HRGN;
|
||||
begin
|
||||
OldHandle := SelectObject(FHandle, Region.Reference.Handle);
|
||||
OldHandle := SelectObject(FHandle, HGDIOBJ(Region.Reference.Handle));
|
||||
if (OldHandle <> Region.Reference.Handle) and (FSavedRegionHandle=0) then
|
||||
FSavedRegionHandle := OldHandle;
|
||||
Include(FState, csRegionValid);
|
||||
|
@ -38,7 +38,7 @@ end;
|
||||
|
||||
procedure TFontHandleCache.RemoveItem(Item: TResourceCacheItem);
|
||||
begin
|
||||
DeleteObject(Item.Handle);
|
||||
DeleteObject(HGDIOBJ(Item.Handle));
|
||||
inherited RemoveItem(Item);
|
||||
end;
|
||||
|
||||
@ -1104,7 +1104,7 @@ begin
|
||||
FontResourceCache.FindFont(FReference.Handle).DecreaseRefCount;
|
||||
FFontHandleCached := False;
|
||||
end else
|
||||
DeleteObject(FReference.Handle);
|
||||
DeleteObject(HGDIOBJ(FReference.Handle));
|
||||
FReference._lclHandle := 0;
|
||||
end;
|
||||
|
||||
|
@ -21,9 +21,9 @@
|
||||
|
||||
procedure TPenHandleCache.RemoveItem(Item: TResourceCacheItem);
|
||||
begin
|
||||
if Item=nil then
|
||||
if Item = nil then
|
||||
RaiseGDBException('TPenHandleCache.RemoveItem');
|
||||
DeleteObject(Item.Handle);
|
||||
DeleteObject(HGDIOBJ(Item.Handle));
|
||||
inherited RemoveItem(Item);
|
||||
end;
|
||||
|
||||
@ -235,7 +235,7 @@ begin
|
||||
PenResourceCache.FindItem(FReference.Handle).DecreaseRefCount;
|
||||
FPenHandleCached := False;
|
||||
end else
|
||||
DeleteObject(FReference.Handle);
|
||||
DeleteObject(HGDIOBJ(FReference.Handle));
|
||||
FReference._lclHandle := 0;
|
||||
end;
|
||||
|
||||
|
@ -139,7 +139,7 @@ procedure TRegion.FreeReference;
|
||||
begin
|
||||
if not FRegionData.Reference.Allocated then Exit;
|
||||
|
||||
DeleteObject(FRegionData.Reference.Handle);
|
||||
DeleteObject(HGDIOBJ(FRegionData.Reference.Handle));
|
||||
FRegionData.Reference._lclHandle := 0;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user