diff options
| author | Andrei Zmievski <andrei@php.net> | 2003-04-01 19:37:04 +0000 |
|---|---|---|
| committer | Andrei Zmievski <andrei@php.net> | 2003-04-01 19:37:04 +0000 |
| commit | 62f9eb8006ef7484cc1ea224c4c131b0d6f677d3 (patch) | |
| tree | 559038ab451ceeb0eb5daac22bde94a5ca71feab /Zend/zend_opcode.c | |
| parent | e2333fd1df3e35218701af1ef5ec19fd5c9e9e5a (diff) | |
| download | php-git-62f9eb8006ef7484cc1ea224c4c131b0d6f677d3.tar.gz | |
Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
okay with engine folks.
Diffstat (limited to 'Zend/zend_opcode.c')
| -rw-r--r-- | Zend/zend_opcode.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 31ddb4557e..302a715ff2 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -175,7 +175,8 @@ ZEND_API void destroy_zend_class(zend_class_entry **pce) zend_hash_destroy(&ce->class_table); free(ce); break; - case ZEND_NAMESPACE: + case ZEND_USER_NAMESPACE: + case ZEND_INTERNAL_NAMESPACE: destroy_zend_namespace(pce); break; } @@ -184,16 +185,30 @@ ZEND_API void destroy_zend_class(zend_class_entry **pce) ZEND_API void destroy_zend_namespace(zend_namespace **pns) { zend_namespace *ns = *pns; - zend_hash_destroy(&ns->function_table); - zend_hash_destroy(&ns->class_table); - zend_hash_destroy(&ns->constants_table); - zend_hash_destroy(ns->static_members); - FREE_HASHTABLE(ns->static_members); - if (ns->doc_comment) { - efree(ns->doc_comment); + switch (ns->type) { + case ZEND_USER_NAMESPACE: + zend_hash_destroy(&ns->function_table); + zend_hash_destroy(&ns->class_table); + zend_hash_destroy(&ns->constants_table); + zend_hash_destroy(ns->static_members); + FREE_HASHTABLE(ns->static_members); + if (ns->doc_comment) { + efree(ns->doc_comment); + } + efree(ns->name); + efree(ns); + break; + + case ZEND_INTERNAL_NAMESPACE: + zend_hash_destroy(&ns->function_table); + zend_hash_destroy(&ns->class_table); + zend_hash_destroy(&ns->constants_table); + zend_hash_destroy(ns->static_members); + free(ns->static_members); + free(ns->name); + free(ns); + break; } - efree(ns->name); - efree(ns); } void zend_class_add_ref(zend_class_entry **ce) |
