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 nowTObject = class {$IFDEF SYSTEM_HAS_FEATURE_MONITOR} strict private _MonitorData : Pointer; privatefunction SetMonitorData(aData,aCheckOld : Pointer) : Pointer; inline;function GetMonitorData: Pointer; inline; {$ENDIF} protected function GetDisposed : Boolean; inline; Property Disposed : Boolean Read GetDisposed; publicwith 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.
Is SYSTEM_HAS_FEATURE_MONITOR defined by default in the build process ? I assume, the compiler can be built without it ?
Regards, Adriaan van Os _______________________________________________ fpc-pascal maillist - [email protected] https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
