* fixed dup rtti writing for classes

This commit is contained in:
peter 2000-01-30 23:29:06 +00:00
parent 0f11acb568
commit bf32e168f9

View File

@ -396,19 +396,21 @@
{ rtti generation } { rtti generation }
procedure tdef.generate_rtti; procedure tdef.generate_rtti;
begin begin
has_rtti:=true; if not has_rtti then
getdatalabel(rtti_label); begin
write_child_rtti_data; has_rtti:=true;
rttilist^.concat(new(pai_symbol,init(rtti_label,0))); getdatalabel(rtti_label);
write_rtti_data; write_child_rtti_data;
rttilist^.concat(new(pai_symbol_end,init(rtti_label))); rttilist^.concat(new(pai_symbol,init(rtti_label,0)));
write_rtti_data;
rttilist^.concat(new(pai_symbol_end,init(rtti_label)));
end;
end; end;
function tdef.get_rtti_label : string; function tdef.get_rtti_label : string;
begin begin
if not(has_rtti) then generate_rtti;
generate_rtti;
get_rtti_label:=rtti_label^.name; get_rtti_label:=rtti_label^.name;
end; end;
@ -3718,13 +3720,16 @@ Const local_symtable_index : longint = $8001;
procedure tobjectdef.generate_rtti; procedure tobjectdef.generate_rtti;
begin begin
has_rtti:=true; if not has_rtti then
getdatalabel(rtti_label); begin
write_child_rtti_data; has_rtti:=true;
rttilist^.concat(new(pai_symbol,initname_global(rtti_name,0))); getdatalabel(rtti_label);
rttilist^.concat(new(pai_label,init(rtti_label))); write_child_rtti_data;
write_rtti_data; rttilist^.concat(new(pai_symbol,initname_global(rtti_name,0)));
rttilist^.concat(new(pai_symbol_end,initname(rtti_name))); rttilist^.concat(new(pai_label,init(rtti_label)));
write_rtti_data;
rttilist^.concat(new(pai_symbol_end,initname(rtti_name)));
end;
end; end;
@ -3806,11 +3811,11 @@ Const local_symtable_index : longint = $8001;
function tobjectdef.get_rtti_label : string; function tobjectdef.get_rtti_label : string;
begin begin
if not(has_rtti) then generate_rtti;
generate_rtti;
get_rtti_label:=rtti_name; get_rtti_label:=rtti_name;
end; end;
{**************************************************************************** {****************************************************************************
TFORWARDDEF TFORWARDDEF
****************************************************************************} ****************************************************************************}
@ -3863,7 +3868,10 @@ Const local_symtable_index : longint = $8001;
{ {
$Log$ $Log$
Revision 1.190 2000-01-28 23:17:53 florian Revision 1.191 2000-01-30 23:29:06 peter
* fixed dup rtti writing for classes
Revision 1.190 2000/01/28 23:17:53 florian
* virtual XXXX; support for objects, only if -dWITHDMT is defined * virtual XXXX; support for objects, only if -dWITHDMT is defined
Revision 1.189 2000/01/26 12:02:29 peter Revision 1.189 2000/01/26 12:02:29 peter