diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-20 14:56:48 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-20 14:57:10 +0200 |
commit | 7fd4212cc0cda2dc28354e66aa072129d6ea80e9 (patch) | |
tree | 0cac8e331cc76db7a9e1ddc680168912809c0f9a /Zend/zend_inheritance.c | |
parent | 05e9197c517baf740cf8228da3c123ca21cc8e4d (diff) | |
download | php-git-7fd4212cc0cda2dc28354e66aa072129d6ea80e9.tar.gz |
Add common code for magic method assignment
This was repeated three times.
Diffstat (limited to 'Zend/zend_inheritance.c')
-rw-r--r-- | Zend/zend_inheritance.c | 40 |
1 files changed, 1 insertions, 39 deletions
diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index b70ce01b97..158b67ce38 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -1559,44 +1559,6 @@ static void zend_do_implement_interfaces(zend_class_entry *ce, zend_class_entry } /* }}} */ -static void zend_add_magic_methods(zend_class_entry* ce, zend_string* mname, zend_function* fe) /* {{{ */ -{ - if (ZSTR_VAL(mname)[0] != '_' || ZSTR_VAL(mname)[1] != '_') { - /* pass */ - } else if (zend_string_equals_literal(mname, ZEND_CLONE_FUNC_NAME)) { - ce->clone = fe; - } else if (zend_string_equals_literal(mname, ZEND_CONSTRUCTOR_FUNC_NAME)) { - ce->constructor = fe; - } else if (zend_string_equals_literal(mname, ZEND_DESTRUCTOR_FUNC_NAME)) { - ce->destructor = fe; - } else if (zend_string_equals_literal(mname, ZEND_GET_FUNC_NAME)) { - ce->__get = fe; - ce->ce_flags |= ZEND_ACC_USE_GUARDS; - } else if (zend_string_equals_literal(mname, ZEND_SET_FUNC_NAME)) { - ce->__set = fe; - ce->ce_flags |= ZEND_ACC_USE_GUARDS; - } else if (zend_string_equals_literal(mname, ZEND_CALL_FUNC_NAME)) { - ce->__call = fe; - } else if (zend_string_equals_literal(mname, ZEND_UNSET_FUNC_NAME)) { - ce->__unset = fe; - ce->ce_flags |= ZEND_ACC_USE_GUARDS; - } else if (zend_string_equals_literal(mname, ZEND_ISSET_FUNC_NAME)) { - ce->__isset = fe; - ce->ce_flags |= ZEND_ACC_USE_GUARDS; - } else if (zend_string_equals_literal(mname, ZEND_CALLSTATIC_FUNC_NAME)) { - ce->__callstatic = fe; - } else if (zend_string_equals_literal(mname, ZEND_TOSTRING_FUNC_NAME)) { - ce->__tostring = fe; - } else if (zend_string_equals_literal(mname, ZEND_DEBUGINFO_FUNC_NAME)) { - ce->__debugInfo = fe; - } else if (zend_string_equals_literal(mname, "__serialize")) { - ce->__serialize = fe; - } else if (zend_string_equals_literal(mname, "__unserialize")) { - ce->__unserialize = fe; - } -} -/* }}} */ - static void zend_add_trait_method(zend_class_entry *ce, zend_string *name, zend_string *key, zend_function *fn) /* {{{ */ { zend_function *existing_fn = NULL; @@ -1659,7 +1621,7 @@ static void zend_add_trait_method(zend_class_entry *ce, zend_string *name, zend_ new_fn->common.function_name = name; function_add_ref(new_fn); fn = zend_hash_update_ptr(&ce->function_table, key, new_fn); - zend_add_magic_methods(ce, key, fn); + zend_add_magic_method(ce, fn, key); } /* }}} */ |