[fpc-pascal] FPC 3.3.x breaks the Firebird Project's Firebird.pas

Michael Van Canneyt michael at freepascal.org
Tue Jun 18 14:54:51 CEST 2024



On Tue, 18 Jun 2024, Benito van der Zander via fpc-pascal wrote:

> Hi,
>
>> 
>> This field was introduced for Delphi compatibility:
>> The implementation of TMonitor requires this data.
>> 
>> Delphi has this field as well but "hides" the field behind all other 
>> actually declared fields.
>> 
>> If you examine the actual memory size allocated for TObject, you'll see 
>> that an extra field is actually present.
>
> that is bad news
>
> Now all objects become 8 bytes larger?

In 64-bit, yes. Same size as in Delphi.

> Could this not use a global hashmap with tobject as key?

Alas no, too slow. TMonitor is supposed to be faster than a lock object
(although I have my doubts if this is achieved even in Delphi). 
Can't have a hash lookup then.

If you don't want to use TMonitor, you can recompile the RTL with 
OPT=-dFPC_DISABLE_MONITOR then none of this is included:
The FPC rtl itself does not use TMonitor.

Michael.


More information about the fpc-pascal mailing list