mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
For now that works.
# However some of the register stuff must be moved to the engine. # And inside the engine some fixes are needed, too.
This commit is contained in:
parent
61e09677b2
commit
e525904c8e
1 changed files with 8 additions and 1 deletions
|
@ -100,13 +100,20 @@ void spl_register_parent_ce(zend_class_entry * class_entry, zend_class_entry * p
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ spl_inherit method */
|
||||
static void spl_inherit_method(zend_function *function)
|
||||
{
|
||||
function_add_ref(function);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ spl_register_implement */
|
||||
void spl_register_implement(zend_class_entry * class_entry, zend_class_entry * interface_entry TSRMLS_DC)
|
||||
{
|
||||
zend_uint num_interfaces = ++class_entry->num_interfaces;
|
||||
class_entry->interfaces = (zend_class_entry **) realloc(class_entry->interfaces, sizeof(zend_class_entry *) * num_interfaces);
|
||||
class_entry->interfaces[num_interfaces-1] = interface_entry;
|
||||
zend_hash_copy(&class_entry->function_table, &interface_entry->function_table, NULL, NULL, sizeof(zend_function));
|
||||
zend_hash_merge(&class_entry->function_table, &interface_entry->function_table, (copy_ctor_func_t) spl_inherit_method, NULL, sizeof(zend_function), 0);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue