Michael Van Canneyt wrote 20 lines
On Tue, 21 Sep 2010, Florian Klaempfl wrote:
> Am 21.09.2010 13:42, schrieb Adriaan van Os:
>> Michael Van Canneyt wrote:
>>>
>>>
>>> On Tue, 21 Sep 2010, Adriaan van Os wrote:
>>>
>>>> I am looking for a way to obtain the class hierarchy of a program in
>>>> MacPas mode (where there are no published properties). TObject has
>>>> ClassParent, so a list of Class types would be sufficient, I think. I
>>>> can't find however a routine in the RTL to obtain such a list.
>>>
>>> There is no such routine in the RTL, to my knowledge.
>>
>> Can I add it ? I guess a low-level pointer to a list of VMT's would be
>> sufficient to implement it ?
>
> Problem is: it breaks smartlinking.
Yes, I understand that. I looked at the assembly generated for a simple test program and there are separate al_globals entries for each vmt and separate al_rtti entries for the vmt rtti. I asssume the very reason for the separate entries is smart linking.
Hm, I guess I can look at the data section of the executable but it would be highly dependant of the executable binary format.
Is it possible to produce a separate data section/entry that refers to all al_globals and/or all al_rtti entries without breaking smart-linking ?
Why? It's just walking the ParentClass hierarchy of a given class; which is
what RTTI does anyway ?
And the other way round (from a class to each subclass).
Regards,
Adriaan van Os