<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Supplementing my point below, I went back and checked my notes.
The TObject layout post 3.2 (in my copy of trunk) is now</p>
<p> TObject = class<br>
{$IFDEF SYSTEM_HAS_FEATURE_MONITOR}<br>
strict private<br>
_MonitorData : Pointer;<br>
private<br>
function SetMonitorData(aData,aCheckOld : Pointer) :
Pointer; inline;<br>
function GetMonitorData: Pointer; inline;<br>
{$ENDIF}<br>
protected<br>
function GetDisposed : Boolean; inline;<br>
Property Disposed : Boolean Read GetDisposed;<br>
public<br>
</p>
<p>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.</p>
<p>The advice I got was that for external interfaces, only the
"record" layout is immutable between versions. In the end, I had
to remove all the Firebird interface code that relied on the
assumption that the Pascal object layout was the same as the C++
and replaced it with extended records in order to mimimise the
impact on code that used the API.</p>
<p>There's more information about the changes to my code on github
<a class="moz-txt-link-freetext" href="https://github.com/MWASoftware/fbintf/tree/main/client/3.0/firebird">https://github.com/MWASoftware/fbintf/tree/main/client/3.0/firebird</a></p>
<div class="moz-cite-prefix">On 18/02/2026 08:39, Tony Whyman via
fpc-pascal wrote:<br>
</div>
<blockquote type="cite"
cite="mid:202602180839.61I8doGr2985613@mail4.mwassocs.co.uk">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<blockquote
style="margin: 0 0 0 40px; border: none; padding: 0px;"
dir="auto">The object layout has changed post 3.2 with the
addition of an extra field. This breaks any code that makes
assumptions about this. I had a problem with the Firebird OO API
due to this change (also interfacing to C++), and had to rewrite
the Firebird/IBX interface moving away from OO to extended
records.</blockquote>
<div><br>
</div>
<div align="left" dir="auto" style="font-size:100%;color:#000000">
<div>-------- Original message --------</div>
<div>From: Adriaan van Os via fpc-pascal
<a class="moz-txt-link-rfc2396E" href="mailto:fpc-pascal@lists.freepascal.org"><fpc-pascal@lists.freepascal.org></a> </div>
<div>Date: 17/02/2026 17:05 (GMT+00:00) </div>
<div>To: FPC-Pascal users discussions
<a class="moz-txt-link-rfc2396E" href="mailto:fpc-pascal@lists.freepascal.org"><fpc-pascal@lists.freepascal.org></a> </div>
<div>Cc: Adriaan van Os <a class="moz-txt-link-rfc2396E" href="mailto:adriaan@adriaan.biz"><adriaan@adriaan.biz></a> </div>
<div>Subject: [fpc-pascal] Corba ABI change ? </div>
<div><br>
</div>
</div>
Has there been an ABI change in the trunk compiler (compared to
fpc-3.2.4-rc1) for CORBA interfaces <br>
? Maybe related to "Unicode"-strings ? I have some C++ interfacing
code that works fine with <br>
fpc-3.2.4-rc1 but crashes with the trunk compiler.<br>
<br>
Any hints are appreciated.<br>
<br>
Regards,<br>
<br>
Adriaan van Os<br>
_______________________________________________<br>
fpc-pascal maillist - <a class="moz-txt-link-abbreviated" href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a><br>
<a class="moz-txt-link-freetext" href="https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal">https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a><br>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
fpc-pascal maillist - <a class="moz-txt-link-abbreviated" href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal">https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal</a>
</pre>
</blockquote>
</body>
</html>