[fpc-devel] TypeInfo RTTI / possible inconsistency

Michael Van Canneyt michael at freepascal.org
Tue May 18 16:58:41 CEST 2021



On Tue, 18 May 2021, Martin Frb via fpc-devel wrote:

> On 18/05/2021 15:24, Martin Frb via fpc-devel wrote:
>> I was looking at TypeInfo (based on 3.2.2rc)
>>
>> line 632  unit TypInfo
>>>             tkMethod:
>>> ....
>>>               followed by
>>>                   ResultType : ShortString     // for mkFunction, 
>>> mkClassFunction only
>>>                   ResultTypeRef : PPTypeInfo;  // for mkFunction, 
>>> mkClassFunction only
>>>                   CC : TCallConv;
>>>                   ParamTypeRefs : array[1..ParamCount] of PPTypeInfo;}
>>>               );
>>
>> To find out about alignment (for any target which needs alignment), I 
>> looked through other code:
>
> And just to confirm, if anyone knows....
>
> Those are indeed PPTypeInfo ? (even in 3.0?)
>
> Since a lot of other TypeInfos are:
> {$ifdef ver3_0}
> {$define TypeInfoPtr := PTypeInfo}
> {$else}
> {$define TypeInfoPtr := PPTypeInfo}
> {$endif}
>
> Rtti.pas in 3.0.0 seems to tread them as PPTypeInfo. So that would 
> indicate they indeed are PPTypeInfo.

Yes. An additional level of indirection was introduced, for runtime package
support, if I recall correctly. This also makes it Delphi compatible.

But Sven can confirm this, I think he introduced the change.

Michael.


More information about the fpc-devel mailing list