diff options
author | Stanislav Malyshev <stas@php.net> | 2002-03-12 10:08:47 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2002-03-12 10:08:47 +0000 |
commit | 92dd5e611b897bdca8ba27cbfcdc0fc3d7416c85 (patch) | |
tree | 087380223d60df0905009249958346955cb40fc9 /Zend/zend_opcode.c | |
parent | bcdf9b3d4c37f12aaf9072274e74b6702f0d8817 (diff) | |
download | php-git-92dd5e611b897bdca8ba27cbfcdc0fc3d7416c85.tar.gz |
- make class tables contain class_entry *, not class_entry
- fix isset($this)
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r-- | Zend/zend_opcode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 672a55bf8f..6e5ca2aad2 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -106,8 +106,10 @@ ZEND_API void destroy_zend_function(zend_function *function) } -ZEND_API void destroy_zend_class(zend_class_entry *ce) +ZEND_API void destroy_zend_class(zend_class_entry **pce) { + zend_class_entry *ce = *pce; + if (--(*ce->refcount)>0) { return; } @@ -122,6 +124,7 @@ ZEND_API void destroy_zend_class(zend_class_entry *ce) FREE_HASHTABLE(ce->static_members); zend_hash_destroy(&ce->constants_table); zend_hash_destroy(&ce->class_table); + efree(ce); break; case ZEND_INTERNAL_CLASS: zend_hash_destroy(&ce->default_properties); @@ -133,6 +136,7 @@ ZEND_API void destroy_zend_class(zend_class_entry *ce) free(ce->static_members); zend_hash_destroy(&ce->constants_table); zend_hash_destroy(&ce->class_table); + free(ce); break; } } |