]> granicus.if.org Git - php/commitdiff
Initialize all relevant zend_class_entry fields to avoid accidental
authorAndrei Zmievski <andrei@php.net>
Thu, 3 Apr 2003 14:44:41 +0000 (14:44 +0000)
committerAndrei Zmievski <andrei@php.net>
Thu, 3 Apr 2003 14:44:41 +0000 (14:44 +0000)
crashes.

Zend/zend.c
Zend/zend_API.c
Zend/zend_compile.c

index c9f50227c1efdf7fddf23d8cfd1bdee09937419d..fc305fff494f74476c5f6cbff930f208aa23d4cf 100644 (file)
@@ -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);
index ce3e89a6206f94da25f78ef4c4ddbf3b2e40d9d2..e492725c2be018caaa4f66bf79d951bb6704c2a7 100644 (file)
@@ -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) {
index 71dc97ba86534716500bf1c223a740a8bca186f9..ec2d09bad7ad68dfdfa789f0e9a4a859007c4f10 100644 (file)
@@ -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);
 }