mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 13:59:28 +02:00
* made vararrays working on win64
git-svn-id: trunk@6515 -
This commit is contained in:
parent
34bdb90822
commit
3aa64eb6b4
@ -1821,7 +1821,7 @@ implementation
|
||||
|
||||
{ get temp for array of indicies,
|
||||
we set the real size later }
|
||||
temp:=ctempcreatenode.create(sinttype,4,tt_persistent,false);
|
||||
temp:=ctempcreatenode.create(s32inttype,4,tt_persistent,false);
|
||||
addstatement(newstatement,temp);
|
||||
|
||||
countindices:=0;
|
||||
@ -1829,12 +1829,12 @@ implementation
|
||||
p4:=comp_expr(true);
|
||||
|
||||
addstatement(newstatement,cassignmentnode.create(
|
||||
ctemprefnode.create_offset(temp,countindices*sinttype.size),p4));
|
||||
ctemprefnode.create_offset(temp,countindices*s32inttype.size),p4));
|
||||
inc(countindices);
|
||||
until not try_to_consume(_COMMA);
|
||||
|
||||
{ set real size }
|
||||
temp.size:=countindices*sinttype.size;
|
||||
temp.size:=countindices*s32inttype.size;
|
||||
|
||||
consume(_RECKKLAMMER);
|
||||
|
||||
@ -1846,7 +1846,7 @@ implementation
|
||||
|
||||
{ create call to fpc_vararray_put }
|
||||
paras:=ccallparanode.create(cordconstnode.create
|
||||
(countindices,sinttype,true),
|
||||
(countindices,s32inttype,true),
|
||||
ccallparanode.create(caddrnode.create_internal
|
||||
(ctemprefnode.create(temp)),
|
||||
ccallparanode.create(ctypeconvnode.create_internal(p4,cvarianttype),
|
||||
@ -1864,7 +1864,7 @@ implementation
|
||||
|
||||
{ create call to fpc_vararray_get }
|
||||
paras:=ccallparanode.create(cordconstnode.create
|
||||
(countindices,sinttype,true),
|
||||
(countindices,s32inttype,true),
|
||||
ccallparanode.create(caddrnode.create_internal
|
||||
(ctemprefnode.create(temp)),
|
||||
ccallparanode.create(p1,
|
||||
|
@ -55,16 +55,16 @@ type
|
||||
pvararraybound = ^tvararraybound;
|
||||
pvararray = ^tvararray;
|
||||
|
||||
tvararraybound = packed record
|
||||
tvararraybound = record
|
||||
elementcount,lowbound : longint;
|
||||
end;
|
||||
|
||||
tvararrayboundarray = array[0..0] of tvararraybound;
|
||||
tvararraycoorarray = array[0..0] of SizeInt;
|
||||
tvararraycoorarray = array[0..0] of Longint;
|
||||
|
||||
tvararray = packed record
|
||||
tvararray = record
|
||||
dimcount,flags : word;
|
||||
elementsize : ptrint;
|
||||
elementsize : longint;
|
||||
lockcount : longint;
|
||||
data : pointer;
|
||||
bounds : tvararrayboundarray;
|
||||
|
Loading…
Reference in New Issue
Block a user