On 19 Nov 2009, at 11:24, Graeme Geldenhuys wrote:

Paul Ishenin wrote:

Compiler will add a flag for each var/const argument that they dont
require that checks.

Can't the compiler simply initialize structured types by default?

The compiler already initialises the reference counted fields of structured types by default, because otherwise the code would crash. The rest is not initialised.

Initialize char arrays to empty strings, other structures like pointers
to nil, byte arrays to #0 etc..?

Yes, the compiler can do that, at a cost. Here's the speed impact on the compiler itself: http://lists.apple.com/archives/objc-language/2009/Sep/msg00094.html (a more "optimized version" turned out to be slower, because it zeroed more data).

After all, this is already done for AnsString, Integer type, real types
etc...

It is done for reference counted types (such as ansistring, widestring, non-corba interfaces, ...). It is /not/ done for integer, real, etc.

You may be confused by the fact that all global variables are zero on startup.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to