mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-23 03:51:29 +02:00
* fixed dup rtti writing for classes
This commit is contained in:
parent
0f11acb568
commit
bf32e168f9
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user