summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2003-04-01 19:37:04 +0000
committerAndrei Zmievski <andrei@php.net>2003-04-01 19:37:04 +0000
commit62f9eb8006ef7484cc1ea224c4c131b0d6f677d3 (patch)
tree559038ab451ceeb0eb5daac22bde94a5ca71feab /Zend/zend_opcode.c
parente2333fd1df3e35218701af1ef5ec19fd5c9e9e5a (diff)
downloadphp-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.c35
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)