summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2003-04-03 14:44:41 +0000
committerAndrei Zmievski <andrei@php.net>2003-04-03 14:44:41 +0000
commit91eff553e326c7a4cd8d5e51528856a835be31e3 (patch)
tree2199e12df52f31c796aa664fa3d8c5f7149682b6 /Zend
parentf7041314bbcd9d180e6b17786277208d5402209b (diff)
downloadphp-git-91eff553e326c7a4cd8d5e51528856a835be31e3.tar.gz
Initialize all relevant zend_class_entry fields to avoid accidental
crashes.
Diffstat (limited to 'Zend')
-rw-r--r--Zend/zend.c1
-rw-r--r--Zend/zend_API.c1
-rw-r--r--Zend/zend_compile.c8
3 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index c9f50227c1..fc305fff49 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -377,7 +377,6 @@ static void register_standard_class(TSRMLS_D)
zend_standard_class_def->type = ZEND_INTERNAL_CLASS;
zend_standard_class_def->name_length = sizeof("stdClass") - 1;
zend_standard_class_def->name = zend_strndup("stdClass", zend_standard_class_def->name_length);
- zend_standard_class_def->parent = NULL;
zend_initialize_class_data(zend_standard_class_def, 1 TSRMLS_CC);
zend_hash_add(GLOBAL_CLASS_TABLE, "stdclass", sizeof("stdclass"), &zend_standard_class_def, sizeof(zend_class_entry *), NULL);
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index ce3e89a620..e492725c2b 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -1372,7 +1372,6 @@ ZEND_API zend_class_entry *zend_register_internal_class(zend_class_entry *orig_c
*class_entry = *orig_class_entry;
class_entry->type = ZEND_INTERNAL_CLASS;
- class_entry->parent = NULL;
zend_initialize_class_data(class_entry, 0 TSRMLS_CC);
if (class_entry->builtin_functions) {
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 71dc97ba86..ec2d09bad7 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2204,9 +2204,6 @@ void zend_do_begin_class_declaration(znode *class_token, znode *class_name, znod
new_class_entry->name = class_name->u.constant.value.str.val;
new_class_entry->name_length = class_name->u.constant.value.str.len;
- new_class_entry->parent = NULL;
- new_class_entry->num_interfaces = 0;
-
zend_initialize_class_data(new_class_entry, 1 TSRMLS_CC);
new_class_entry->filename = zend_get_compiled_filename(TSRMLS_C);
new_class_entry->line_start = zend_get_compiled_lineno(TSRMLS_C);
@@ -3354,6 +3351,8 @@ void zend_init_namespace(zend_namespace *ns TSRMLS_DC)
zend_hash_init_ex(&ns->constants_table, 10, NULL, ZVAL_PTR_DTOR, persistent_hashes, 0);
ns->parent = NULL;
+ ns->num_interfaces = 0;
+ ns->interfaces = NULL;
ns->ns = NULL;
ns->constructor = NULL;
ns->destructor = NULL;
@@ -3523,6 +3522,9 @@ void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify_handlers
ce->create_object = NULL;
}
+ ce->parent = NULL;
+ ce->num_interfaces = 0;
+ ce->interfaces = NULL;
ce->ns = CG(active_namespace);
}