|
@@ -286,20 +286,12 @@ procedure fpc_dynarray_setlength(var p : pointer;pti : pointer;
|
|
|
end;
|
|
|
|
|
|
|
|
|
-{$ifdef HASFUNCTIONCOPYDYNARR}
|
|
|
{ provide local access to dynarr_copy }
|
|
|
function int_dynarray_copy(psrc : pointer;ti : pointer;
|
|
|
lowidx,count:tdynarrayindex) : pointer;[external name 'FPC_DYNARR_COPY'];
|
|
|
|
|
|
function fpc_dynarray_copy(psrc : pointer;ti : pointer;
|
|
|
lowidx,count:tdynarrayindex) : pointer;[Public,Alias:'FPC_DYNARR_COPY'];compilerproc;
|
|
|
-{$else HASFUNCTIONCOPYDYNARR}
|
|
|
-procedure int_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer;
|
|
|
- lowidx,count:tdynarrayindex);[external name 'FPC_DYNARR_COPY'];
|
|
|
-
|
|
|
-procedure fpc_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer;
|
|
|
- lowidx,count:tdynarrayindex);[Public,Alias:'FPC_DYNARR_COPY'];compilerproc;
|
|
|
-{$endif HASFUNCTIONCOPYDYNARR}
|
|
|
var
|
|
|
realpdest,
|
|
|
realpsrc : pdynarray;
|
|
@@ -308,15 +300,11 @@ procedure fpc_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer;
|
|
|
highidx : tdynarrayindex;
|
|
|
elesize : sizeint;
|
|
|
eletype : pdynarraytypeinfo;
|
|
|
-{$ifdef HASFUNCTIONCOPYDYNARR}
|
|
|
pdest : pointer;
|
|
|
-{$endif HASFUNCTIONCOPYDYNARR}
|
|
|
begin
|
|
|
highidx:=lowidx+count-1;
|
|
|
pdest:=nil;
|
|
|
-{$ifdef HASFUNCTIONCOPYDYNARR}
|
|
|
result:=pdest;
|
|
|
-{$endif HASFUNCTIONCOPYDYNARR}
|
|
|
if psrc=nil then
|
|
|
exit;
|
|
|
realpsrc:=pdynarray(psrc-sizeof(tdynarray));
|
|
@@ -353,9 +341,7 @@ procedure fpc_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer;
|
|
|
{ increment ref. count of members }
|
|
|
for i:= 0 to cnt-1 do
|
|
|
int_addref(pointer(pdest+elesize*i),eletype);
|
|
|
-{$ifdef HASFUNCTIONCOPYDYNARR}
|
|
|
result:=pdest;
|
|
|
-{$endif HASFUNCTIONCOPYDYNARR}
|
|
|
end;
|
|
|
|
|
|
|