<!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>