From bf32e168f9fe2ff54700db8794e2f53e694369b2 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 30 Jan 2000 23:29:06 +0000 Subject: [PATCH] * fixed dup rtti writing for classes --- compiler/symdef.inc | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/compiler/symdef.inc b/compiler/symdef.inc index 96652b38b4..7c98ba4b7b 100644 --- a/compiler/symdef.inc +++ b/compiler/symdef.inc @@ -396,19 +396,21 @@ { rtti generation } procedure tdef.generate_rtti; begin - has_rtti:=true; - getdatalabel(rtti_label); - write_child_rtti_data; - rttilist^.concat(new(pai_symbol,init(rtti_label,0))); - write_rtti_data; - rttilist^.concat(new(pai_symbol_end,init(rtti_label))); + if not has_rtti then + begin + has_rtti:=true; + getdatalabel(rtti_label); + write_child_rtti_data; + rttilist^.concat(new(pai_symbol,init(rtti_label,0))); + write_rtti_data; + rttilist^.concat(new(pai_symbol_end,init(rtti_label))); + end; end; function tdef.get_rtti_label : string; begin - if not(has_rtti) then - generate_rtti; + generate_rtti; get_rtti_label:=rtti_label^.name; end; @@ -3718,13 +3720,16 @@ Const local_symtable_index : longint = $8001; procedure tobjectdef.generate_rtti; begin - has_rtti:=true; - getdatalabel(rtti_label); - write_child_rtti_data; - rttilist^.concat(new(pai_symbol,initname_global(rtti_name,0))); - rttilist^.concat(new(pai_label,init(rtti_label))); - write_rtti_data; - rttilist^.concat(new(pai_symbol_end,initname(rtti_name))); + if not has_rtti then + begin + has_rtti:=true; + getdatalabel(rtti_label); + write_child_rtti_data; + rttilist^.concat(new(pai_symbol,initname_global(rtti_name,0))); + rttilist^.concat(new(pai_label,init(rtti_label))); + write_rtti_data; + rttilist^.concat(new(pai_symbol_end,initname(rtti_name))); + end; end; @@ -3806,11 +3811,11 @@ Const local_symtable_index : longint = $8001; function tobjectdef.get_rtti_label : string; begin - if not(has_rtti) then - generate_rtti; + generate_rtti; get_rtti_label:=rtti_name; end; + {**************************************************************************** TFORWARDDEF ****************************************************************************} @@ -3863,7 +3868,10 @@ Const local_symtable_index : longint = $8001; { $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 Revision 1.189 2000/01/26 12:02:29 peter