gtk, gtk2: fix crash in SetSysColors

git-svn-id: trunk@34419 -
This commit is contained in:
paul 2011-12-26 06:59:11 +00:00
parent 788c0a47d2
commit ecdc478798
2 changed files with 8 additions and 16 deletions

View File

@ -9246,9 +9246,6 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
function TGtkWidgetSet.SetSysColors(cElements: Integer; const lpaElements; function TGtkWidgetSet.SetSysColors(cElements: Integer; const lpaElements;
const lpaRgbValues): Boolean; const lpaRgbValues): Boolean;
type
TLongArray = array[0..0] of Longint;
PLongArray = ^TLongArray;
var var
n: Integer; n: Integer;
Element: LongInt; Element: LongInt;
@ -9258,11 +9255,10 @@ begin
for n := 0 to cElements - 1 do for n := 0 to cElements - 1 do
begin begin
Element := PLongArray(lpaElements)^[n]; Element := PInteger(lpaElements)[n];
if (Element > MAX_SYS_COLORS) if (Element > MAX_SYS_COLORS) or (Element < 0) then
or (Element < 0) Exit;
then Exit; SysColorMap[Element] := PDword(@lpaRgbValues)[n];
SysColorMap[PLongArray(lpaElements)^[n]] := PLongArray(lpaRgbValues)^[n];
//DebugLn(Format('Trace:[TGtkWidgetSet.SetSysColor] Index %d (%8x) --> %8x', [PLongArray(lpaElements)^[n], SysColorMap[PLongArray(lpaElements)^[n]], PLongArray(lpaRgbValues)^[n]])); //DebugLn(Format('Trace:[TGtkWidgetSet.SetSysColor] Index %d (%8x) --> %8x', [PLongArray(lpaElements)^[n], SysColorMap[PLongArray(lpaElements)^[n]], PLongArray(lpaRgbValues)^[n]]));
end; end;

View File

@ -8625,9 +8625,6 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
function TGtk2WidgetSet.SetSysColors(cElements: Integer; const lpaElements; function TGtk2WidgetSet.SetSysColors(cElements: Integer; const lpaElements;
const lpaRgbValues): Boolean; const lpaRgbValues): Boolean;
type
TLongArray = array[0..0] of Longint;
PLongArray = ^TLongArray;
var var
n: Integer; n: Integer;
Element: LongInt; Element: LongInt;
@ -8637,11 +8634,10 @@ begin
for n := 0 to cElements - 1 do for n := 0 to cElements - 1 do
begin begin
Element := PLongArray(lpaElements)^[n]; Element := PInteger(lpaElements)[n];
if (Element > MAX_SYS_COLORS) if (Element > MAX_SYS_COLORS) or (Element < 0) then
or (Element < 0) Exit;
then Exit; SysColorMap[Element] := PDword(@lpaRgbValues)[n];
SysColorMap[PLongArray(lpaElements)^[n]] := PLongArray(lpaRgbValues)^[n];
//DebugLn(Format('Trace:[TGtk2WidgetSet.SetSysColor] Index %d (%8x) --> %8x', [PLongArray(lpaElements)^[n], SysColorMap[PLongArray(lpaElements)^[n]], PLongArray(lpaRgbValues)^[n]])); //DebugLn(Format('Trace:[TGtk2WidgetSet.SetSysColor] Index %d (%8x) --> %8x', [PLongArray(lpaElements)^[n], SysColorMap[PLongArray(lpaElements)^[n]], PLongArray(lpaRgbValues)^[n]]));
end; end;