I guess I found a bug at "zend_compile.c". IMHO when you want to create
an internal hashtable, that will be filled with internal zvals
(malloc'ed instead of emalloc'ed), you should pass the "internal zval
destructor" to the hashtable initialization function. Currently,
"zend_compile.c" uses the "default zval destructor" for internal and
standard zvals. It leads to some error messages (about efree'ing blocks
that weren't emalloc'ed) at the end of execution.
Am I right, I mean, is this the correct behaviour of an internal
hashtable ? Anyway, if this is a bug, the patch attached fixes it.