[fpc-devel] Redefine FillChar() to use out parameter instead

Jonas Maebe jonas.maebe at elis.ugent.be
Thu Nov 19 09:36:46 CET 2009

Graeme Geldenhuys wrote on do, 19 nov 2009:

> Jonas Maebe wrote:
>> Delphi compatibility. And Delphi does that because COM requires this
>> behaviour.
> Can't that behaviour be limited to Windows platform only.

It would change the behaviour of code between Windows and non-Windows  
platforms. One thing it would certainly affect is assembler code.

More importantly, another thing it would affect is that in case  
someone has written their own fillchar with an out parameter, and  
*expects* reference counted structures to be finalised at the caller  
side before they are overwritten with zeroes by their routine.  
Changing that behaviour woud
a) result in memory leaks when using such a routine
b) not be fixable without manually adding finalize calls everywhere  
this custom fillchar routine is called, since the required typeinfo is  
not available at the callee side

> Such behaviour & implementation just doesn't seem right for a project
> that prides itself by being a cross-platform compiler (project).

Cross-platform also means having the same behaviour on different platforms.


This message was sent using IMP, the Internet Messaging Program.

More information about the fpc-devel mailing list