zend_hash_destroy(EX(function_state).function_symbol_table);
FREE_HASHTABLE(EX(function_state).function_symbol_table);
} else {
- *(++EG(symtable_cache_ptr)) = EX(function_state).function_symbol_table;
+ /* clean before putting into the cache, since clean
+ could call dtors, which could use cached hash */
zend_hash_clean(*EG(symtable_cache_ptr));
+ *(++EG(symtable_cache_ptr)) = EX(function_state).function_symbol_table;
}
EG(active_symbol_table) = calling_symbol_table;
} else { /* ZEND_OVERLOADED_FUNCTION */