|
@@ -316,6 +316,7 @@ interface
|
|
procedure finish_objc_data;
|
|
procedure finish_objc_data;
|
|
{ C++ }
|
|
{ C++ }
|
|
procedure finish_cpp_data;
|
|
procedure finish_cpp_data;
|
|
|
|
+ function RttiName: string;
|
|
end;
|
|
end;
|
|
|
|
|
|
tclassrefdef = class(tabstractpointerdef)
|
|
tclassrefdef = class(tabstractpointerdef)
|
|
@@ -3230,7 +3231,6 @@ implementation
|
|
var
|
|
var
|
|
s : string;
|
|
s : string;
|
|
t : ttoken;
|
|
t : ttoken;
|
|
- tmp: tobjectdef;
|
|
|
|
begin
|
|
begin
|
|
{$ifdef EXTDEBUG}
|
|
{$ifdef EXTDEBUG}
|
|
showhidden:=true;
|
|
showhidden:=true;
|
|
@@ -3238,15 +3238,7 @@ implementation
|
|
s:='';
|
|
s:='';
|
|
if assigned(_class) then
|
|
if assigned(_class) then
|
|
begin
|
|
begin
|
|
- tmp:=_class;
|
|
|
|
- while assigned(tmp) do
|
|
|
|
- begin
|
|
|
|
- s:=tmp.objrealname^+'.'+s;
|
|
|
|
- if assigned(tmp.owner) and (tmp.owner.symtabletype=ObjectSymtable) then
|
|
|
|
- tmp:=tobjectdef(tmp.owner.defowner)
|
|
|
|
- else
|
|
|
|
- tmp:=nil;
|
|
|
|
- end;
|
|
|
|
|
|
+ s:=_class.RttiName+'.';
|
|
if (po_classmethod in procoptions) then
|
|
if (po_classmethod in procoptions) then
|
|
s:='class ' + s;
|
|
s:='class ' + s;
|
|
end;
|
|
end;
|
|
@@ -4848,6 +4840,21 @@ implementation
|
|
self.symtable.DefList.ForEachCall(@do_cpp_import_info,nil);
|
|
self.symtable.DefList.ForEachCall(@do_cpp_import_info,nil);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+ function tobjectdef.RttiName: string;
|
|
|
|
+ var
|
|
|
|
+ tmp: tobjectdef;
|
|
|
|
+ begin
|
|
|
|
+ Result:=objrealname^;
|
|
|
|
+ tmp:=self;
|
|
|
|
+ repeat
|
|
|
|
+ if tmp.owner.symtabletype=ObjectSymtable then
|
|
|
|
+ tmp:=tobjectdef(tmp.owner.defowner)
|
|
|
|
+ else
|
|
|
|
+ break;
|
|
|
|
+ Result:=tmp.objrealname^+'.'+Result;
|
|
|
|
+ until tmp=nil;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
|
|
{****************************************************************************
|
|
{****************************************************************************
|
|
TImplementedInterface
|
|
TImplementedInterface
|