summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-17 20:48:49 +0000
committersvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-06-17 20:48:49 +0000
commit5f7afecca5989fd37638057aafa6af4d9fedd116 (patch)
tree8b6a4c53d214997e972554649275747686c7851d
parent5f07e56cd191b3d005a0ad1e37ec05123fb1fcbe (diff)
downloadfpc-5f7afecca5989fd37638057aafa6af4d9fedd116.tar.gz
* fix SetToString/StringToSet for 8/16-bit platforms
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@42244 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--rtl/objpas/typinfo.pp18
1 files changed, 9 insertions, 9 deletions
diff --git a/rtl/objpas/typinfo.pp b/rtl/objpas/typinfo.pp
index c3bb1fa74e..beee4b391d 100644
--- a/rtl/objpas/typinfo.pp
+++ b/rtl/objpas/typinfo.pp
@@ -1058,16 +1058,16 @@ end;
function SetToString(TypeInfo: PTypeInfo; Value: Pointer; Brackets: Boolean): String;
type
- tsetarr = bitpacked array[0..SizeOf(Integer)*8-1] of 0..1;
+ tsetarr = bitpacked array[0..SizeOf(LongInt)*8-1] of 0..1;
Var
I,El,Els,Rem,V,Max : Integer;
PTI : PTypeInfo;
PTD : PTypeData;
- ValueArr : PLongWord;
+ ValueArr : PLongInt;
begin
PTD := GetTypeData(TypeInfo);
PTI:=PTD^.CompType;
- ValueArr := PLongWord(Value);
+ ValueArr := PLongInt(Value);
Result:='';
{$ifdef ver3_0}
case PTD^.OrdType of
@@ -1085,25 +1085,25 @@ begin
end;
end;
{$else}
- Els := PTD^.SetSize div SizeOf(Integer);
- Rem := PTD^.SetSize mod SizeOf(Integer);
+ Els := PTD^.SetSize div SizeOf(LongInt);
+ Rem := PTD^.SetSize mod SizeOf(LongInt);
{$endif}
{$ifdef ver3_0}
El := 0;
{$else}
- for El := 0 to (PTD^.SetSize - 1) div SizeOf(Integer) do
+ for El := 0 to (PTD^.SetSize - 1) div SizeOf(LongInt) do
{$endif}
begin
if El = Els then
Max := Rem
else
- Max := SizeOf(Integer);
+ Max := SizeOf(LongInt);
For I:=0 to Max*8-1 do
begin
if (tsetarr(ValueArr[El])[i]<>0) then
begin
- V := I + SizeOf(Integer) * 8 * El;
+ V := I + SizeOf(LongInt) * 8 * El;
If Result='' then
Result:=GetEnumName(PTI,V)
else
@@ -1195,7 +1195,7 @@ begin
to reverse the shift }
BitOfs := 31 - BitOfs;
{$endif}
- ResArr[ElOfs] := ResArr[ElOfs] or (1 shl BitOfs);
+ ResArr[ElOfs] := ResArr[ElOfs] or (LongInt(1) shl BitOfs);
end;
end;
end;