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