|
|
@ -852,6 +852,13 @@ uint32_t zend_add_member_modifier(uint32_t flags, uint32_t new_flag) /* {{{ */ |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
ZEND_API zend_string *zend_create_member_string(zend_string *class_name, zend_string *member_name) { |
|
|
|
return zend_string_concat3( |
|
|
|
ZSTR_VAL(class_name), ZSTR_LEN(class_name), |
|
|
|
"::", sizeof("::") - 1, |
|
|
|
ZSTR_VAL(member_name), ZSTR_LEN(member_name)); |
|
|
|
} |
|
|
|
|
|
|
|
zend_string *zend_concat_names(char *name1, size_t name1_len, char *name2, size_t name2_len) { |
|
|
|
return zend_string_concat3(name1, name1_len, "\\", 1, name2, name2_len); |
|
|
|
} |
|
|
@ -7160,10 +7167,8 @@ static zend_bool zend_try_ct_eval_magic_const(zval *zv, zend_ast *ast) /* {{{ */ |
|
|
|
} |
|
|
|
if (op_array && op_array->function_name) { |
|
|
|
if (op_array->scope) { |
|
|
|
ZVAL_NEW_STR(zv, zend_string_concat3( |
|
|
|
ZSTR_VAL(op_array->scope->name), ZSTR_LEN(op_array->scope->name), |
|
|
|
"::", 2, |
|
|
|
ZSTR_VAL(op_array->function_name), ZSTR_LEN(op_array->function_name))); |
|
|
|
ZVAL_NEW_STR(zv, |
|
|
|
zend_create_member_string(op_array->scope->name, op_array->function_name)); |
|
|
|
} else { |
|
|
|
ZVAL_STR_COPY(zv, op_array->function_name); |
|
|
|
} |
|
|
@ -8553,8 +8558,7 @@ void zend_compile_const_expr_class_const(zend_ast **ast_ptr) /* {{{ */ |
|
|
|
zend_string_addref(class_name); |
|
|
|
} |
|
|
|
|
|
|
|
name = zend_string_concat3( |
|
|
|
ZSTR_VAL(class_name), ZSTR_LEN(class_name), "::", 2, ZSTR_VAL(const_name), ZSTR_LEN(const_name)); |
|
|
|
name = zend_create_member_string(class_name, const_name); |
|
|
|
|
|
|
|
zend_ast_destroy(ast); |
|
|
|
zend_string_release_ex(class_name, 0); |
|
|
|