> Please review the patch https://gist.github.com/dstogov/47a39aff37f0a6441ea0

Instead of duplicating logic in two places I'd rather grab the
relevant data first, then do the logic once:

zend_string *class_name;
if (fe->type == ZEND_INTERNAL_FUNCTION) {
    class_name = zend_string_init(
            ((zend_internal_arg_info*)fe_arg_info)->class_name,
            strlen(((zend_internal_arg_info*)fe_arg_info)->class_name), 0
    );
} else {
    class_name = zend_string_dup(fe_arg_info->class_name);
}

if (!zend_string_equals_literal_ci(class_name, "parent") &&
proto->common.scope) {
    fe_class_name = zend_string_copy(proto->common.scope->name);
} else if (!zend_string_equals_literal_ci(class_name, "self") &&
fe->common.scope) {
    fe_class_name = zend_string_copy(fe->common.scope->name);
} else {
    fe_class_name = class_name;
}
zend_string_release(class_name);

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to