mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 01:29:29 +02:00
+ add method get_dynarray_symofs to retrieve the platform specific offset of the dynamic array data from its
meta data record git-svn-id: trunk@39039 -
This commit is contained in:
parent
d3d9221c8d
commit
e863245021
@ -444,6 +444,12 @@ type
|
||||
supported this is equal to the header size }
|
||||
class function get_string_symofs(typ: tstringtype; winlikewidestring: boolean): pint; virtual;
|
||||
|
||||
{ returns the offset of the array data relatve to dynamic array constant
|
||||
labels. On most platforms, this is 0 (with the header at a negative
|
||||
offset), but on some platforms such negative offsets are not supported
|
||||
and thus this is equal to the header size }
|
||||
class function get_dynarray_symofs:pint;virtual;
|
||||
|
||||
{ set the fieldvarsym whose data we will emit next; needed
|
||||
in case of variant records, so we know which part of the variant gets
|
||||
initialised. Also in case of objects, because the fieldvarsyms are spread
|
||||
@ -1118,6 +1124,16 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
class function ttai_typedconstbuilder.get_dynarray_symofs:pint;
|
||||
begin
|
||||
{ darwin's linker does not support negative offsets }
|
||||
if not (target_info.system in systems_darwin) then
|
||||
result:=0
|
||||
else
|
||||
result:=get_dynarray_header_size;
|
||||
end;
|
||||
|
||||
|
||||
class function ttai_typedconstbuilder.get_string_header_size(typ: tstringtype; winlikewidestring: boolean): pint;
|
||||
var
|
||||
ansistring_header_size: pint;
|
||||
|
Loading…
Reference in New Issue
Block a user