Vulcan - Memory Allocator
From Jim Starkey on the Firebird Development List 9th March 2004
The traditional Interbase/Firebird memory allocator always zeroed allocated memory to eliminate the need to initialize stuff to zero. This was my fault. The current practice is to use "new" to allocate memory, which does not initialize memory to zeros. This is also my fault. The existing firebird "new", however, fills newly allocated memory with hex "deadbeef", which is very cute. It also fills released memory with hex "feedabed", which is less cute. The problem, however, is that these patterns can leave uninitialized memory on different platforms with different values, depending on variable sign and alignment, leading to different behaviors on different platforms.
I have just changed the Vulcan version to fill newly allocated memory with hex 'cccccccc' and released memory with 'dddddddd'. It would be good idea if Firebird 2 tracked the change.
You may be wondering how I stumbled on this. Don't ask.