mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-03 15:58:16 +02:00
carbon: fix for possible mem corruption on ExtTextDraw
git-svn-id: trunk@24649 -
This commit is contained in:
parent
fe226671fc
commit
3584c1d8bc
@ -1005,6 +1005,7 @@ var
|
|||||||
Layouts : PATSLayoutRecordArray;
|
Layouts : PATSLayoutRecordArray;
|
||||||
LayCount : ItemCount;
|
LayCount : ItemCount;
|
||||||
begin
|
begin
|
||||||
|
if not Assigned(FDX) or (FDXCount=0) then Exit;
|
||||||
{ if idx < FDXCount then
|
{ if idx < FDXCount then
|
||||||
begin}
|
begin}
|
||||||
Layouts:=nil;
|
Layouts:=nil;
|
||||||
@ -1016,7 +1017,7 @@ begin
|
|||||||
if Assigned(Layouts) and (Laycount>0) then
|
if Assigned(Layouts) and (Laycount>0) then
|
||||||
begin
|
begin
|
||||||
ofs:=0;
|
ofs:=0;
|
||||||
for i:=0 to Min(FDXCount, Min(LayCount, Count)) do
|
for i:=0 to Min(FDXCount, Min(LayCount, Count))-1 do
|
||||||
begin
|
begin
|
||||||
Deltas^[i] := Layouts^[i].realPos-Long2Fix(ofs);
|
Deltas^[i] := Layouts^[i].realPos-Long2Fix(ofs);
|
||||||
Layouts^[i].realPos:=Long2Fix(ofs);
|
Layouts^[i].realPos:=Long2Fix(ofs);
|
||||||
@ -1062,6 +1063,9 @@ begin
|
|||||||
theValue := @OverSpec;
|
theValue := @OverSpec;
|
||||||
ATSUSetTextLayoutRefCon(FLayout, UInt32(Self));
|
ATSUSetTextLayoutRefCon(FLayout, UInt32(Self));
|
||||||
ATSUSetLayoutControls (FLayout, 1, @theTag, @theSize, @theValue);
|
ATSUSetLayoutControls (FLayout, 1, @theTag, @theSize, @theValue);
|
||||||
|
end else begin
|
||||||
|
FDX:=nil;
|
||||||
|
FDXCount:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if OSError(ATSUDrawText(FLayout, kATSUFromTextBeginning, kATSUToTextEnd,
|
if OSError(ATSUDrawText(FLayout, kATSUFromTextBeginning, kATSUToTextEnd,
|
||||||
|
Loading…
Reference in New Issue
Block a user