mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-26 07:09:34 +02:00
* use Tai_const.Create_nil_dataptr for creating the nil pointers located before the method table in the class vmt
git-svn-id: trunk@25194 -
This commit is contained in:
parent
0bdd9db7a2
commit
b85f87620c
@ -830,7 +830,7 @@ implementation
|
|||||||
if (oo_has_msgint in _class.objectoptions) then
|
if (oo_has_msgint in _class.objectoptions) then
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(intmessagetable))
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(intmessagetable))
|
||||||
else
|
else
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_nil_dataptr);
|
||||||
{ pointer to method table or nil }
|
{ pointer to method table or nil }
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(methodnametable));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(methodnametable));
|
||||||
{ pointer to field table }
|
{ pointer to field table }
|
||||||
@ -841,21 +841,21 @@ implementation
|
|||||||
if _class.members_need_inittable then
|
if _class.members_need_inittable then
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(RTTIWriter.get_rtti_label(_class,initrtti)))
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(RTTIWriter.get_rtti_label(_class,initrtti)))
|
||||||
else
|
else
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_nil_dataptr);
|
||||||
{ auto table }
|
{ auto table }
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_nil_dataptr);
|
||||||
{ interface table }
|
{ interface table }
|
||||||
if _class.ImplementedInterfaces.count>0 then
|
if _class.ImplementedInterfaces.count>0 then
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(interfacetable))
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(interfacetable))
|
||||||
else if _class.implements_any_interfaces then
|
else if _class.implements_any_interfaces then
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil))
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_nil_dataptr)
|
||||||
else
|
else
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(current_asmdata.RefAsmSymbol('FPC_EMPTYINTF')));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(current_asmdata.RefAsmSymbol('FPC_EMPTYINTF')));
|
||||||
{ table for string messages }
|
{ table for string messages }
|
||||||
if (oo_has_msgstr in _class.objectoptions) then
|
if (oo_has_msgstr in _class.objectoptions) then
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(strmessagetable))
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(strmessagetable))
|
||||||
else
|
else
|
||||||
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_nil_dataptr);
|
||||||
end;
|
end;
|
||||||
{ write virtual methods }
|
{ write virtual methods }
|
||||||
writevirtualmethods(current_asmdata.asmlists[al_globals]);
|
writevirtualmethods(current_asmdata.asmlists[al_globals]);
|
||||||
|
Loading…
Reference in New Issue
Block a user