Skip to content

Commit 141995f

Browse files
committed
refactor all-the-things
1 parent 3f31e15 commit 141995f

File tree

171 files changed

+1179
-1166
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+1179
-1166
lines changed

Zend/Optimizer/ssa_integrity.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static inline bool is_defined(const zend_ssa *ssa, const zend_op_array *op_array
9797
#define FAIL(...) do { \
9898
if (status == SUCCESS) { \
9999
fprintf(stderr, "\nIn function %s::%s (%s):\n", \
100-
op_array->scope ? ZSTR_VAL((zend_string *)op_array->scope->name) : "", \
100+
op_array->scope ? ZSTR_VAL(op_array->scope->namespaced_name.name) : "", \
101101
op_array->function_name ? ZSTR_VAL(op_array->function_name) : "{main}", extra); \
102102
} \
103103
fprintf(stderr, __VA_ARGS__); \

Zend/Optimizer/zend_dump.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,9 @@ static void zend_dump_type_info(uint32_t info, zend_class_entry *ce, int is_inst
221221
fprintf(stderr, "class");
222222
if (ce) {
223223
if (is_instanceof) {
224-
fprintf(stderr, " (instanceof %s)", ((zend_string *)ce->name)->val);
224+
fprintf(stderr, " (instanceof %s)", (ce->namespaced_name.name)->val);
225225
} else {
226-
fprintf(stderr, " (%s)", ((zend_string *)ce->name)->val);
226+
fprintf(stderr, " (%s)", (ce->namespaced_name.name)->val);
227227
}
228228
}
229229
} else if ((info & MAY_BE_ANY) == MAY_BE_ANY) {
@@ -356,9 +356,9 @@ static void zend_dump_type_info(uint32_t info, zend_class_entry *ce, int is_inst
356356
fprintf(stderr, "object");
357357
if (ce) {
358358
if (is_instanceof) {
359-
fprintf(stderr, " (instanceof %s)", ((zend_string *)ce->name)->val);
359+
fprintf(stderr, " (instanceof %s)", (ce->namespaced_name.name)->val);
360360
} else {
361-
fprintf(stderr, " (%s)", ((zend_string *)ce->name)->val);
361+
fprintf(stderr, " (%s)", (ce->namespaced_name.name)->val);
362362
}
363363
}
364364
}
@@ -931,8 +931,8 @@ static void zend_dump_block_header(const zend_cfg *cfg, const zend_op_array *op_
931931
void zend_dump_op_array_name(const zend_op_array *op_array)
932932
{
933933
if (op_array->function_name) {
934-
if (op_array->scope && op_array->scope->name) {
935-
fprintf(stderr, "%s::%s", ((zend_string *)op_array->scope->name)->val, op_array->function_name->val);
934+
if (op_array->scope && op_array->scope->namespaced_name.name) {
935+
fprintf(stderr, "%s::%s", (op_array->scope->namespaced_name.name)->val, op_array->function_name->val);
936936
} else {
937937
fprintf(stderr, "%s", op_array->function_name->val);
938938
}

Zend/Optimizer/zend_optimizer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ zend_class_entry *zend_optimizer_get_class_entry(
842842
return Z_PTR_P(ce_zv);
843843
}
844844

845-
if (op_array && op_array->scope && zend_string_equals_ci((zend_string *)op_array->scope->name, lcname)) {
845+
if (op_array && op_array->scope && zend_string_equals_ci(op_array->scope->namespaced_name.name, lcname)) {
846846
return op_array->scope;
847847
}
848848

Zend/zend.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ struct _zend_inheritance_cache_entry {
161161

162162
struct _zend_class_entry {
163163
char type;
164-
zend_namespaced_name *name;
164+
zend_namespaced_name namespaced_name;
165165
/* class_entry or string depending on ZEND_ACC_LINKED */
166166
union {
167167
zend_class_entry *parent;

Zend/zend_API.c

Lines changed: 61 additions & 60 deletions
Large diffs are not rendered by default.

Zend/zend_API.h

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -279,26 +279,28 @@ typedef struct _zend_fcall_info_cache {
279279
#define INIT_CLASS_ENTRY(class_container, class_name, functions) \
280280
INIT_CLASS_ENTRY_EX(class_container, class_name, functions)
281281

282-
#define INIT_CLASS_NAME(n, class_container, class_name) \
283-
{ \
284-
memset(&n, 0, sizeof(zend_namespaced_name)); \
285-
n.name = zend_string_init_interned(class_name, strlen(class_name), 1); \
286-
n.kind = ZEND_NAME_LEXICAL_SCOPE; \
287-
n.lexical_scope = &class_container; \
288-
}
282+
#define INIT_CLASS_NAME(n, class_name) \
283+
INIT_CLASS_NAME_EX("", 0, n, class_name, strlen(class_name))
289284

290-
#define INIT_CLASS_NAME_EX(n, class_container, class_name, class_name_len) \
285+
#define INIT_CLASS_NAME_NS(n, ns, class_name) \
286+
INIT_CLASS_NAME_EX(ns, strlen(ns), n, ZEND_NS_NAME(ns, class_name), strlen(ZEND_NS_NAME(ns, class_name)))
287+
288+
#define INIT_CLASS_NAME_EX(ns, ns_len, n, class_name, class_name_len) \
291289
{ \
292290
memset(&n, 0, sizeof(zend_namespaced_name)); \
293291
n.name = zend_string_init_interned(class_name, class_name_len, 1); \
294-
n.kind = ZEND_NAME_LEXICAL_SCOPE; \
295-
n.lexical_scope = &class_container; \
292+
n.kind = ZEND_NAME_NAMESPACE; \
293+
if (strlen(ns) == 0) { \
294+
n.namespace_name = zend_empty_string; \
295+
} else { \
296+
n.namespace_name = zend_string_init_interned(ns, ns_len, 1); \
297+
} \
296298
}
297299

298300
#define INIT_CLASS_ENTRY_EX(class_container, class_name, functions) \
299301
{ \
300302
memset(&class_container, 0, sizeof(zend_class_entry)); \
301-
class_container.name = &class_name; \
303+
class_container.namespaced_name = class_name; \
302304
class_container.default_object_handlers = &std_object_handlers; \
303305
class_container.info.internal.builtin_functions = functions; \
304306
}
@@ -1788,7 +1790,7 @@ ZEND_API ZEND_COLD void zend_class_redeclaration_error_ex(int type, zend_string
17881790
Z_PARAM_PROLOGUE(0, 0); \
17891791
if (UNEXPECTED(!zend_parse_arg_obj_or_str(_arg, &destination_object, base_ce, &destination_string, allow_null, _i))) { \
17901792
if (base_ce) { \
1791-
_error = ZSTR_VAL((zend_string *)(base_ce)->name); \
1793+
_error = ZSTR_VAL((base_ce)->namespaced_name.name); \
17921794
_error_code = allow_null ? ZPP_ERROR_WRONG_CLASS_OR_STRING_OR_NULL : ZPP_ERROR_WRONG_CLASS_OR_STRING; \
17931795
break; \
17941796
} else { \
@@ -1976,7 +1978,7 @@ ZEND_API ZEND_COLD void zend_class_redeclaration_error_ex(int type, zend_string
19761978
Z_PARAM_PROLOGUE(deref, 0); \
19771979
if (UNEXPECTED(!zend_parse_arg_object(_arg, &dest, _ce, check_null))) { \
19781980
if (_ce) { \
1979-
_error = ZSTR_VAL((_ce)->name->name); \
1981+
_error = ZSTR_VAL((_ce)->namespaced_name.name); \
19801982
_error_code = check_null ? ZPP_ERROR_WRONG_CLASS_OR_NULL : ZPP_ERROR_WRONG_CLASS; \
19811983
break; \
19821984
} else { \
@@ -1997,7 +1999,7 @@ ZEND_API ZEND_COLD void zend_class_redeclaration_error_ex(int type, zend_string
19971999
Z_PARAM_PROLOGUE(deref, 0); \
19982000
if (UNEXPECTED(!zend_parse_arg_obj(_arg, &dest, _ce, check_null))) { \
19992001
if (_ce) { \
2000-
_error = ZSTR_VAL((zend_string *)(_ce)->name); \
2002+
_error = ZSTR_VAL((_ce)->namespaced_name.name); \
20012003
_error_code = check_null ? ZPP_ERROR_WRONG_CLASS_OR_NULL : ZPP_ERROR_WRONG_CLASS; \
20022004
break; \
20032005
} else { \
@@ -2016,7 +2018,7 @@ ZEND_API ZEND_COLD void zend_class_redeclaration_error_ex(int type, zend_string
20162018
#define Z_PARAM_OBJ_OF_CLASS_OR_LONG_EX(dest_obj, _ce, dest_long, is_null, allow_null) \
20172019
Z_PARAM_PROLOGUE(0, 0); \
20182020
if (UNEXPECTED(!zend_parse_arg_obj_or_long(_arg, &dest_obj, _ce, &dest_long, &is_null, allow_null, _i))) { \
2019-
_error = ZSTR_VAL((zend_string *)(_ce)->name); \
2021+
_error = ZSTR_VAL((_ce)->namespaced_name.name); \
20202022
_error_code = allow_null ? ZPP_ERROR_WRONG_CLASS_OR_LONG_OR_NULL : ZPP_ERROR_WRONG_CLASS_OR_LONG; \
20212023
break; \
20222024
}

Zend/zend_ast.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate_inner(
661661
}
662662
case ZEND_AST_CONSTANT_CLASS:
663663
if (scope) {
664-
ZVAL_STR_COPY(result, (zend_string *)scope->name);
664+
ZVAL_STR_COPY(result, scope->namespaced_name.name);
665665
} else {
666666
ZVAL_EMPTY_STRING(result);
667667
}
@@ -672,14 +672,14 @@ ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate_inner(
672672
return FAILURE;
673673
}
674674
if (ast->attr == ZEND_FETCH_CLASS_SELF) {
675-
ZVAL_STR_COPY(result, (zend_string *)scope->name);
675+
ZVAL_STR_COPY(result, scope->namespaced_name.name);
676676
} else if (ast->attr == ZEND_FETCH_CLASS_PARENT) {
677677
if (!scope->parent) {
678678
zend_throw_error(NULL,
679679
"Cannot use \"parent\" when current class scope has no parent");
680680
return FAILURE;
681681
}
682-
ZVAL_STR_COPY(result, (zend_string *)scope->parent->name);
682+
ZVAL_STR_COPY(result, scope->parent->namespaced_name.name);
683683
} else {
684684
ZEND_ASSERT(0 && "Should have errored during compilation");
685685
}
@@ -1102,7 +1102,7 @@ ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate_inner(
11021102
zend_error(E_DEPRECATED,
11031103
"Calling static trait method %s::%s is deprecated, "
11041104
"it should only be called on a class using the trait",
1105-
ZSTR_VAL((zend_string *)fptr->common.scope->name), ZSTR_VAL(fptr->common.function_name));
1105+
ZSTR_VAL(fptr->common.scope->namespaced_name.name), ZSTR_VAL(fptr->common.function_name));
11061106
if (EG(exception)) {
11071107
return FAILURE;
11081108
}

Zend/zend_attributes.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -73,22 +73,22 @@ static void validate_allow_dynamic_properties(
7373
{
7474
if (scope->ce_flags & ZEND_ACC_TRAIT) {
7575
zend_error_noreturn(E_ERROR, "Cannot apply #[AllowDynamicProperties] to trait %s",
76-
ZSTR_VAL((zend_string *)scope->name)
76+
ZSTR_VAL(scope->namespaced_name.name)
7777
);
7878
}
7979
if (scope->ce_flags & ZEND_ACC_INTERFACE) {
8080
zend_error_noreturn(E_ERROR, "Cannot apply #[AllowDynamicProperties] to interface %s",
81-
ZSTR_VAL((zend_string *)scope->name)
81+
ZSTR_VAL(scope->namespaced_name.name)
8282
);
8383
}
8484
if (scope->ce_flags & ZEND_ACC_READONLY_CLASS) {
8585
zend_error_noreturn(E_ERROR, "Cannot apply #[AllowDynamicProperties] to readonly class %s",
86-
ZSTR_VAL((zend_string *)scope->name)
86+
ZSTR_VAL(scope->namespaced_name.name)
8787
);
8888
}
8989
if (scope->ce_flags & ZEND_ACC_ENUM) {
9090
zend_error_noreturn(E_ERROR, "Cannot apply #[AllowDynamicProperties] to enum %s",
91-
ZSTR_VAL((zend_string *)scope->name)
91+
ZSTR_VAL(scope->namespaced_name.name)
9292
);
9393
}
9494
scope->ce_flags |= ZEND_ACC_ALLOW_DYNAMIC_PROPERTIES;
@@ -459,13 +459,13 @@ ZEND_API zend_internal_attribute *zend_mark_internal_attribute(zend_class_entry
459459
}
460460

461461
ZEND_HASH_FOREACH_PTR(ce->attributes, attr) {
462-
if (zend_string_equals(attr->name, (zend_string *)zend_ce_attribute->name)) {
462+
if (zend_string_equals(attr->name, zend_ce_attribute->namespaced_name.name)) {
463463
internal_attr = pemalloc(sizeof(zend_internal_attribute), 1);
464464
internal_attr->ce = ce;
465465
internal_attr->flags = Z_LVAL(attr->args[0].value);
466466
internal_attr->validator = NULL;
467467

468-
zend_string *lcname = zend_string_tolower_ex((zend_string *)ce->name, 1);
468+
zend_string *lcname = zend_string_tolower_ex(ce->namespaced_name.name, 1);
469469
zend_hash_update_ptr(&internal_attributes, lcname, internal_attr);
470470
zend_string_release(lcname);
471471

@@ -478,7 +478,7 @@ ZEND_API zend_internal_attribute *zend_mark_internal_attribute(zend_class_entry
478478

479479
ZEND_API zend_internal_attribute *zend_internal_attribute_register(zend_class_entry *ce, uint32_t flags)
480480
{
481-
zend_attribute *attr = zend_add_class_attribute(ce, (zend_string *)zend_ce_attribute->name, 1);
481+
zend_attribute *attr = zend_add_class_attribute(ce, zend_ce_attribute->namespaced_name.name, 1);
482482
ZVAL_LONG(&attr->args[0].value, flags);
483483

484484
return zend_mark_internal_attribute(ce);

Zend/zend_attributes_arginfo.h

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Zend/zend_builtin_functions.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -592,14 +592,14 @@ ZEND_FUNCTION(get_class)
592592
if (UNEXPECTED(EG(exception))) {
593593
RETURN_THROWS();
594594
}
595-
RETURN_STR_COPY(scope->name);
595+
RETURN_STR_COPY(scope->namespaced_name.name);
596596
} else {
597597
zend_throw_error(NULL, "get_class() without arguments must be called from within a class");
598598
RETURN_THROWS();
599599
}
600600
}
601601

602-
RETURN_STR_COPY(Z_OBJCE_P(obj)->name);
602+
RETURN_STR_COPY(Z_OBJCE_P(obj)->namespaced_name.name);
603603
}
604604
/* }}} */
605605

@@ -616,7 +616,7 @@ ZEND_FUNCTION(get_called_class)
616616
RETURN_THROWS();
617617
}
618618

619-
RETURN_STR_COPY(called_scope->name);
619+
RETURN_STR_COPY(called_scope->namespaced_name.name);
620620
}
621621
/* }}} */
622622

@@ -639,7 +639,7 @@ ZEND_FUNCTION(get_parent_class)
639639
}
640640

641641
if (ce && ce->parent) {
642-
RETURN_STR_COPY(ce->parent->name);
642+
RETURN_STR_COPY(ce->parent->namespaced_name.name);
643643
} else {
644644
RETURN_FALSE;
645645
}
@@ -679,7 +679,7 @@ static void is_a_impl(INTERNAL_FUNCTION_PARAMETERS, bool only_subclass) /* {{{ *
679679
RETURN_FALSE;
680680
}
681681

682-
if (!only_subclass && EXPECTED(zend_string_equals(instance_ce->name, class_name))) {
682+
if (!only_subclass && EXPECTED(zend_string_equals(instance_ce->namespaced_name.name, class_name))) {
683683
retval = 1;
684684
} else {
685685
ce = zend_lookup_class_ex(class_name, NULL, ZEND_FETCH_CLASS_NO_AUTOLOAD);
@@ -1386,7 +1386,7 @@ static inline void get_declared_class_impl(INTERNAL_FUNCTION_PARAMETERS, int fla
13861386
&& ZSTR_VAL(key)[0] != 0) {
13871387
ZEND_HASH_FILL_GROW();
13881388
if (EXPECTED(Z_TYPE_P(zv) == IS_PTR)) {
1389-
ZEND_HASH_FILL_SET_STR_COPY((zend_string *)ce->name);
1389+
ZEND_HASH_FILL_SET_STR_COPY(ce->namespaced_name.name);
13901390
} else {
13911391
ZEND_ASSERT(Z_TYPE_P(zv) == IS_ALIAS_PTR);
13921392
ZEND_HASH_FILL_SET_STR_COPY(key);
@@ -2042,9 +2042,9 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
20422042
object = Z_OBJ(call->This);
20432043
/* $this may be passed into regular internal functions */
20442044
if (func->common.scope) {
2045-
ZVAL_STR_COPY(&tmp, (zend_string *)func->common.scope->name);
2045+
ZVAL_STR_COPY(&tmp, func->common.scope->namespaced_name.name);
20462046
} else if (object->handlers->get_class_name == zend_std_get_class_name) {
2047-
ZVAL_STR_COPY(&tmp, (zend_string *)object->ce->name);
2047+
ZVAL_STR_COPY(&tmp, object->ce->namespaced_name.name);
20482048
} else {
20492049
ZVAL_STR(&tmp, object->handlers->get_class_name(object));
20502050
}
@@ -2057,7 +2057,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
20572057
ZVAL_INTERNED_STR(&tmp, ZSTR_KNOWN(ZEND_STR_OBJECT_OPERATOR));
20582058
_zend_hash_append_ex(stack_frame, ZSTR_KNOWN(ZEND_STR_TYPE), &tmp, 1);
20592059
} else if (func->common.scope) {
2060-
ZVAL_STR_COPY(&tmp, func->common.scope->name);
2060+
ZVAL_STR_COPY(&tmp, func->common.scope->namespaced_name.name);
20612061
_zend_hash_append_ex(stack_frame, ZSTR_KNOWN(ZEND_STR_CLASS), &tmp, 1);
20622062
ZVAL_INTERNED_STR(&tmp, ZSTR_KNOWN(ZEND_STR_PAAMAYIM_NEKUDOTAYIM));
20632063
_zend_hash_append_ex(stack_frame, ZSTR_KNOWN(ZEND_STR_TYPE), &tmp, 1);

Zend/zend_builtin_functions_arginfo.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)