]> granicus.if.org Git - php/commitdiff
Fix runtime inheritence (child functions/members should have higher precedence)
authorZeev Suraski <zeev@php.net>
Tue, 27 Jul 1999 20:14:58 +0000 (20:14 +0000)
committerZeev Suraski <zeev@php.net>
Tue, 27 Jul 1999 20:14:58 +0000 (20:14 +0000)
Zend/zend_compile.c

index e93069a4352a2c9d21c218eaa7b333b37c8d6b9a..a374bf0cd5c73e7278f7a66f58a434d41c055ca4 100644 (file)
@@ -935,8 +935,8 @@ ZEND_API int do_bind_function_or_class(zend_op *opline, HashTable *function_tabl
                                }
 
                                /* Perform inheritence */
-                               zend_hash_copy(&ce->function_table, &parent_ce->function_table, (void (*)(void *)) function_add_ref, &tmp_zend_function, sizeof(zend_function));
-                               zend_hash_copy(&ce->default_properties, &parent_ce->default_properties, (void (*)(void *)) zval_add_ref, (void *) &tmp, sizeof(zval *));
+                               zend_hash_merge(&ce->default_properties, &parent_ce->default_properties, (void (*)(void *)) zval_add_ref, (void *) &tmp, sizeof(zval *), 0);
+                               zend_hash_merge(&ce->function_table, &parent_ce->function_table, (void (*)(void *)) function_add_ref, &tmp_zend_function, sizeof(zend_function), 0);
 
                                /* Register the derived class */
                                if (zend_hash_add(class_table, class_name, strlen(class_name)+1, ce, sizeof(zend_class_entry), NULL)==FAILURE) {