[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