Closed GoogleCodeExporter closed 9 years ago
Hi Primoz! :)
I see the same problem.
In GpStuff.pas, you have:
destructor TGpMemoryBuffer.Destroy;
var
next : pointer;
previous: pointer;
begin
next := FList;
while assigned(next) do begin
previous := PPointer(next)^;
if (NativeUInt(next) < NativeUInt(FBaseBlock)) or
(NativeUInt(next) > NativeUInt(FBaseBlockEnd))
then
FreeMem(next);
next := previous;
end;
FreeMem(FBaseBlock);
inherited;
end; { TGpMemoryBuffer.Destroy }
on the last line (end;) the compiler complains:
[DCC Warning] GpStuff.pas(669): W1002 Symbol 'DebugHook' is specific to a
platform
[DCC Warning] GpStuff.pas(1265): W1023 Comparing signed and unsigned types -
widened both operands
[DCC Warning] GpStuff.pas(1266): W1023 Comparing signed and unsigned types -
widened both operands
[DCC Fatal Error] GpStuff.pas(1273): F2084 Internal Error: C12079
I noticed the two warnings and tried this fix:
{$IFDEF ConditionalExpressions}
{$IF CompilerVersion = 20} //D2009
type
NativeUInt = Cardinal;
{$IFEND}
{$ENDIF}
destructor TGpMemoryBuffer.Destroy;
var
next : pointer;
previous: pointer;
begin
next := FList;
while assigned(next) do begin
previous := PPointer(next)^;
if (NativeUInt(next) < NativeUInt(FBaseBlock)) or
(NativeUInt(next) > NativeUInt(FBaseBlockEnd))
then
FreeMem(next);
next := previous;
end;
FreeMem(FBaseBlock);
inherited;
end; { TGpMemoryBuffer.Destroy }
Now it compiles fine in D2009. If there are similar issues in Delphi 2006/2007,
you might want to change the
{$IF CompilerVersion = 20} //D2009
to
{$IF CompilerVersion <= 20} //D2009-
Hm, I see now you already have:
{$IF CompilerVersion <= 19} //pre-D2007
type
NativeInt = integer;
NativeUInt = cardinal;
{$IFEND}
Although these do exist in System in D2009, the compiler is obviously buggy
when casting to them, so you might want to change the 19 to 20 there.
/Hallvard Vassbotn
PS. Nice to see you are using my old StrinData and StringBuilder classes! :)
Original comment by vassb...@gmail.com
on 14 Sep 2012 at 8:38
Fixed in revision 1204. Hallvard, thanks for the fix!
Original comment by gabr42
on 25 Sep 2012 at 4:15
Original issue reported on code.google.com by
ToHu...@gmail.com
on 14 Aug 2012 at 11:27