+ align RTTI tables

This commit is contained in:
carl 2002-11-09 15:30:07 +00:00
parent 8e942d82bb
commit 53aa63ead1
2 changed files with 14 additions and 2 deletions

View File

@ -723,6 +723,7 @@ implementation
{ global }
verbose,
{ target }
aasmcpu,
systems,
{ symtable }
symsym,symtable,paramgr,
@ -1098,6 +1099,7 @@ implementation
write_child_rtti_data(rt);
if (cs_create_smart in aktmoduleswitches) then
rttiList.concat(Tai_cut.Create);
rttiList.concat(Tai_align.create(const_align(pointer_size)));
rttiList.concat(Tai_symbol.Create(localrttilab[rt],0));
write_rtti_data(rt);
rttiList.concat(Tai_symbol_end.Create(localrttilab[rt]));
@ -4881,12 +4883,14 @@ implementation
symtable.foreach({$ifdef FPC}@{$endif}count_published_fields,nil);
if (cs_create_smart in aktmoduleswitches) then
rttiList.concat(Tai_cut.Create);
rttilist.concat(tai_align.create(const_align(pointer_size)));
rttiList.concat(Tai_label.Create(fieldtable));
rttiList.concat(Tai_const.Create_16bit(count));
rttiList.concat(Tai_const_symbol.Create(classtable));
symtable.foreach({$ifdef FPC}@{$endif}writefields,nil);
{ generate the class table }
rttilist.concat(tai_align.create(const_align(pointer_size)));
rttiList.concat(Tai_label.Create(classtable));
rttiList.concat(Tai_const.Create_16bit(tablecount));
hp:=tclasslistitem(classtablelist.first);
@ -5459,7 +5463,10 @@ implementation
end.
{
$Log$
Revision 1.100 2002-10-19 15:09:25 peter
Revision 1.101 2002-11-09 15:31:02 carl
+ align RTTI tables
Revision 1.100 2002/10/19 15:09:25 peter
+ tobjectdef.members_need_inittable that is used to generate only the
inittable when it is really used. This saves a lot of useless calls
to fpc_finalize when destroying classes

View File

@ -2455,6 +2455,7 @@ implementation
def.write_child_rtti_data(fullrtti);
if (cs_create_smart in aktmoduleswitches) then
rttiList.concat(Tai_cut.Create);
rttilist.concat(tai_align.create(const_align(pointer_size)));
rttiList.concat(Tai_symbol.Create(rsym.get_label,0));
def.write_rtti_data(fullrtti);
rttiList.concat(Tai_symbol_end.Create(rsym.get_label));
@ -2493,6 +2494,7 @@ implementation
def.write_child_rtti_data(initrtti);
if (cs_create_smart in aktmoduleswitches) then
rttiList.concat(Tai_cut.Create);
rttilist.concat(tai_align.create(const_align(pointer_size)));
rttiList.concat(Tai_symbol.Create(rsym.get_label,0));
def.write_rtti_data(initrtti);
rttiList.concat(Tai_symbol_end.Create(rsym.get_label));
@ -2504,7 +2506,10 @@ implementation
end.
{
$Log$
Revision 1.70 2002-10-13 21:33:37 peter
Revision 1.71 2002-11-09 15:30:07 carl
+ align RTTI tables
Revision 1.70 2002/10/13 21:33:37 peter
* give correct fileposition for undefined forward procs
Revision 1.69 2002/10/05 12:43:29 carl