|
@@ -37,6 +37,7 @@ interface
|
|
TRTTIWriter=class
|
|
TRTTIWriter=class
|
|
private
|
|
private
|
|
procedure fields_write_rtti(st:tsymtable;rt:trttitype);
|
|
procedure fields_write_rtti(st:tsymtable;rt:trttitype);
|
|
|
|
+ procedure params_write_rtti(def:tabstractprocdef;rt:trttitype);
|
|
procedure fields_write_rtti_data(def:tabstractrecorddef;rt:trttitype);
|
|
procedure fields_write_rtti_data(def:tabstractrecorddef;rt:trttitype);
|
|
procedure write_rtti_extrasyms(def:Tdef;rt:Trttitype;mainrtti:Tasmsymbol);
|
|
procedure write_rtti_extrasyms(def:Tdef;rt:Trttitype;mainrtti:Tasmsymbol);
|
|
procedure published_write_rtti(st:tsymtable;rt:trttitype);
|
|
procedure published_write_rtti(st:tsymtable;rt:trttitype);
|
|
@@ -204,6 +205,20 @@ implementation
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
+ procedure TRTTIWriter.params_write_rtti(def:tabstractprocdef;rt:trttitype);
|
|
|
|
+ var
|
|
|
|
+ i : longint;
|
|
|
|
+ sym : tparavarsym;
|
|
|
|
+ begin
|
|
|
|
+ for i:=0 to def.paras.count-1 do
|
|
|
|
+ begin
|
|
|
|
+ sym:=tparavarsym(def.paras[i]);
|
|
|
|
+ if not (vo_is_hidden_para in sym.varoptions) then
|
|
|
|
+ write_rtti(sym.vardef,rt);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+
|
|
procedure TRTTIWriter.published_write_rtti(st:tsymtable;rt:trttitype);
|
|
procedure TRTTIWriter.published_write_rtti(st:tsymtable;rt:trttitype);
|
|
var
|
|
var
|
|
i : longint;
|
|
i : longint;
|
|
@@ -1295,6 +1310,8 @@ implementation
|
|
pointerdef:
|
|
pointerdef:
|
|
if not is_objc_class_or_protocol(tabstractpointerdef(def).pointeddef) then
|
|
if not is_objc_class_or_protocol(tabstractpointerdef(def).pointeddef) then
|
|
write_rtti(tabstractpointerdef(def).pointeddef,rt);
|
|
write_rtti(tabstractpointerdef(def).pointeddef,rt);
|
|
|
|
+ procvardef:
|
|
|
|
+ params_write_rtti(tabstractprocdef(def),rt);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|