1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-11-11 03:45:06 -05:00

Fixed some stuff in PS.

git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@57 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
Raymond 2009-09-13 19:41:03 +00:00
parent f8e5ca80fd
commit 497c55de60

View File

@ -1856,7 +1856,7 @@ begin
t := TPSTypeRec_Array(aType).ArrayType;
elsize := t.RealSize;
darr := Pointer(IPointer(darr) + PointerSize);
l := Longint(darr^);
l := Longint(darr^) {$IFDEF FPC} + 1 {$ENDIF};
darr := Pointer(IPointer(darr) + PointerSize);
case t.BaseType of
btString, {$IFNDEF PS_NOWIDESTRING}
@ -4108,7 +4108,7 @@ end;
function PSDynArrayGetLength(arr: Pointer; aType: TPSTypeRec): Longint;
begin
if aType.BaseType <> btArray then raise Exception.Create(RPS_InvalidArray);
if arr = nil then Result := 0 else Result := Longint(Pointer(IPointer(arr)-PointerSize)^) + 1;
if arr = nil then Result := 0 else Result := Longint(Pointer(IPointer(arr)-PointerSize)^) {$IFDEF FPC}+ 1{$ENDIF};
end;
procedure PSDynArraySetLength(var arr: Pointer; aType: TPSTypeRec; NewLength: Longint);
@ -4136,7 +4136,7 @@ begin
end;
ReallocMem(arr, NewLength * elSize + PointerSize2);
arr := Pointer(IPointer(Arr)+PointerSize);
Longint(Arr^) := NewLength - 1;
Longint(Arr^) := NewLength {$IFDEF FPC} - 1{$ENDIF};
arr := Pointer(IPointer(Arr)+PointerSize);
for i := OldLen to NewLength -1 do
begin
@ -4156,7 +4156,7 @@ begin
GetMem(p, NewLength * elSize + PointerSize2);
Longint(p^) := 1;
p:= Pointer(IPointer(p)+PointerSize);
Longint(p^) := NewLength - 1;
Longint(p^) := NewLength {$IFDEF FPC} - 1{$ENDIF};
p := Pointer(IPointer(p)+PointerSize);
if OldLen <> 0 then
begin