[fpc-pascal] Corba ABI change ?

Michael Van Canneyt michael at freepascal.org
Thu Feb 19 14:15:02 CET 2026



On Thu, 19 Feb 2026, Marc Weustink via fpc-pascal wrote:

>
>
> On 18/02/2026 10:34, Tony Whyman via fpc-pascal wrote:
>> Supplementing my point below, I went back and checked my notes. The 
>> TObject layout post 3.2 (in my copy of trunk) is now
>>
>>         TObject = class
>>         {$IFDEF SYSTEM_HAS_FEATURE_MONITOR}
>>         strict private
>>            _MonitorData : Pointer;
>>         private
>>            function SetMonitorData(aData,aCheckOld : Pointer) : Pointer; 
>> inline;
>>            function GetMonitorData: Pointer; inline;
>>         {$ENDIF}
>>         protected
>>            function GetDisposed : Boolean; inline;
>>            Property Disposed : Boolean Read GetDisposed;
>>         public
>> 
>> with everything before "public" having been added. The big change is the 
>> addition of "_MonitorData". This bumps the offset of all later fields up 
>> by sizeof(pointer). If you have code that makes assumptions about the 
>> object layout - and this very much applies to code that tries to import 
>> an object from C++ then your previous assumptions are invalid.
>
> Pfew.. when you initially wrote your "observations" I didn't realize 
> this issue.
> In our product, based on old delphi code, an object is used as "record 
> with methods" to interface with various IP based systems.

if you are referring to old TP style objects, your code is unaffected.
It only applies to Delphi-style objects.

Michael.


More information about the fpc-pascal mailing list