|
@@ -767,10 +767,11 @@ implementation
|
|
propnamelist:=TFPHashObjectList.Create;
|
|
propnamelist:=TFPHashObjectList.Create;
|
|
collect_propnamelist(propnamelist,def);
|
|
collect_propnamelist(propnamelist,def);
|
|
|
|
|
|
- if (oo_has_vmt in def.objectoptions) then
|
|
|
|
- current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(def.vmt_mangledname,0))
|
|
|
|
- else
|
|
|
|
- current_asmdata.asmlists[al_rtti].concat(Tai_const.create_sym(nil));
|
|
|
|
|
|
+ if not is_objectpascal_helper(def) then
|
|
|
|
+ if (oo_has_vmt in def.objectoptions) then
|
|
|
|
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Createname(def.vmt_mangledname,0))
|
|
|
|
+ else
|
|
|
|
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.create_sym(nil));
|
|
|
|
|
|
{ write parent typeinfo }
|
|
{ write parent typeinfo }
|
|
if assigned(def.childof) then
|
|
if assigned(def.childof) then
|
|
@@ -778,6 +779,13 @@ implementation
|
|
else
|
|
else
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.create_sym(nil));
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.create_sym(nil));
|
|
|
|
|
|
|
|
+ { write typeinfo of extended type }
|
|
|
|
+ if is_objectpascal_helper(def) then
|
|
|
|
+ if assigned(def.extendeddef) then
|
|
|
|
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def.extendeddef,fullrtti)))
|
|
|
|
+ else
|
|
|
|
+ InternalError(2011033001);
|
|
|
|
+
|
|
{ total number of unique properties }
|
|
{ total number of unique properties }
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_16bit(propnamelist.count));
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_16bit(propnamelist.count));
|
|
|
|
|
|
@@ -851,7 +859,6 @@ implementation
|
|
|
|
|
|
begin
|
|
begin
|
|
case def.objecttype of
|
|
case def.objecttype of
|
|
- odt_helper,
|
|
|
|
odt_class:
|
|
odt_class:
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkclass));
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkclass));
|
|
odt_object:
|
|
odt_object:
|
|
@@ -861,6 +868,8 @@ implementation
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterface));
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterface));
|
|
odt_interfacecorba:
|
|
odt_interfacecorba:
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterfaceCorba));
|
|
current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkinterfaceCorba));
|
|
|
|
+ odt_helper:
|
|
|
|
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(tkhelper));
|
|
else
|
|
else
|
|
internalerror(200611034);
|
|
internalerror(200611034);
|
|
end;
|
|
end;
|