Skip to content

Commit 7f1aa87

Browse files
committed
Don't use cast initializer syntax in initializers
1 parent dab47b2 commit 7f1aa87

File tree

9 files changed

+44
-41
lines changed

9 files changed

+44
-41
lines changed

Zend/zend.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,7 @@ static void zend_resolve_property_types(void) /* {{{ */
968968
zend_class_entry *prop_ce = zend_hash_find_ptr(CG(class_table), lc_type_name);
969969

970970
ZEND_ASSERT(prop_ce && prop_ce->type == ZEND_INTERNAL_CLASS);
971-
prop_info->type = ZEND_TYPE_ENCODE_CE(prop_ce, ZEND_TYPE_ALLOW_NULL(prop_info->type));
971+
prop_info->type = (zend_type) ZEND_TYPE_INIT_CE(prop_ce, ZEND_TYPE_ALLOW_NULL(prop_info->type));
972972
zend_string_release(lc_type_name);
973973
zend_string_release(type_name);
974974
}

Zend/zend_API.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3714,7 +3714,7 @@ ZEND_API int zend_try_assign_typed_ref_zval_ex(zend_reference *ref, zval *zv, ze
37143714

37153715
ZEND_API int zend_declare_property_ex(zend_class_entry *ce, zend_string *name, zval *property, int access_type, zend_string *doc_comment) /* {{{ */
37163716
{
3717-
return zend_declare_typed_property(ce, name, property, access_type, doc_comment, ZEND_TYPE_ENCODE_NONE());
3717+
return zend_declare_typed_property(ce, name, property, access_type, doc_comment, (zend_type) ZEND_TYPE_INIT_NONE());
37183718
}
37193719
/* }}} */
37203720

Zend/zend_API.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,31 +96,31 @@ typedef struct _zend_fcall_info_cache {
9696

9797
#define ZEND_FE_END { NULL, NULL, NULL, 0, 0 }
9898

99-
#define ZEND_ARG_INFO(pass_by_ref, name) { #name, {}, pass_by_ref, 0},
100-
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_ENCODE_CLASS_CONST(#classname, allow_null), pass_by_ref, 0 },
101-
#define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_ENCODE_CODE(IS_ARRAY, allow_null), pass_by_ref, 0 },
102-
#define ZEND_ARG_CALLABLE_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_ENCODE_CODE(IS_CALLABLE, allow_null), pass_by_ref, 0 },
103-
#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_ENCODE_CODE(type_hint, allow_null), pass_by_ref, 0 },
104-
#define ZEND_ARG_VARIADIC_INFO(pass_by_ref, name) { #name, {}, pass_by_ref, 1 },
105-
#define ZEND_ARG_VARIADIC_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_ENCODE_CODE(type_hint, allow_null), pass_by_ref, 1 },
106-
#define ZEND_ARG_VARIADIC_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_ENCODE_CLASS_CONST(#classname, allow_null), pass_by_ref, 1 },
99+
#define ZEND_ARG_INFO(pass_by_ref, name) { #name, ZEND_TYPE_INIT_NONE(), pass_by_ref, 0},
100+
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_INIT_CLASS_CONST(#classname, allow_null), pass_by_ref, 0 },
101+
#define ZEND_ARG_ARRAY_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_INIT_CODE(IS_ARRAY, allow_null), pass_by_ref, 0 },
102+
#define ZEND_ARG_CALLABLE_INFO(pass_by_ref, name, allow_null) { #name, ZEND_TYPE_INIT_CODE(IS_CALLABLE, allow_null), pass_by_ref, 0 },
103+
#define ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_INIT_CODE(type_hint, allow_null), pass_by_ref, 0 },
104+
#define ZEND_ARG_VARIADIC_INFO(pass_by_ref, name) { #name, ZEND_TYPE_INIT_NONE(), pass_by_ref, 1 },
105+
#define ZEND_ARG_VARIADIC_TYPE_INFO(pass_by_ref, name, type_hint, allow_null) { #name, ZEND_TYPE_INIT_CODE(type_hint, allow_null), pass_by_ref, 1 },
106+
#define ZEND_ARG_VARIADIC_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name, ZEND_TYPE_INIT_CLASS_CONST(#classname, allow_null), pass_by_ref, 1 },
107107

108108
#define ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, return_reference, required_num_args, class_name, allow_null) \
109109
static const zend_internal_arg_info name[] = { \
110-
{ (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_ENCODE_CLASS_CONST(#class_name, allow_null), return_reference, 0 },
110+
{ (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_INIT_CLASS_CONST(#class_name, allow_null), return_reference, 0 },
111111

112112
#define ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO(name, class_name, allow_null) \
113113
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(name, 0, -1, class_name, allow_null)
114114

115115
#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \
116116
static const zend_internal_arg_info name[] = { \
117-
{ (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_ENCODE_CODE(type, allow_null), return_reference, 0 },
117+
{ (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_INIT_CODE(type, allow_null), return_reference, 0 },
118118
#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(name, type, allow_null) \
119119
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, 0, -1, type, allow_null)
120120

121121
#define ZEND_BEGIN_ARG_INFO_EX(name, _unused, return_reference, required_num_args) \
122122
static const zend_internal_arg_info name[] = { \
123-
{ (const char*)(zend_uintptr_t)(required_num_args), {}, return_reference, 0 },
123+
{ (const char*)(zend_uintptr_t)(required_num_args), ZEND_TYPE_INIT_NONE(), return_reference, 0 },
124124
#define ZEND_BEGIN_ARG_INFO(name, _unused) \
125125
ZEND_BEGIN_ARG_INFO_EX(name, {}, ZEND_RETURN_VALUE, -1)
126126
#define ZEND_END_ARG_INFO() };

Zend/zend_compile.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5311,7 +5311,7 @@ static zend_type zend_compile_typename(zend_ast *ast, zend_bool force_allow_null
53115311
}
53125312

53135313
if (ast->kind == ZEND_AST_TYPE) {
5314-
return ZEND_TYPE_ENCODE_CODE(ast->attr, allow_null);
5314+
return (zend_type) ZEND_TYPE_INIT_CODE(ast->attr, allow_null);
53155315
} else {
53165316
zend_string *class_name = zend_ast_get_str(ast);
53175317
zend_uchar type = zend_lookup_builtin_type_by_name(class_name);
@@ -5325,7 +5325,7 @@ static zend_type zend_compile_typename(zend_ast *ast, zend_bool force_allow_null
53255325
if (type == IS_VOID && allow_null) {
53265326
zend_error_noreturn(E_COMPILE_ERROR, "Void type cannot be nullable");
53275327
}
5328-
return ZEND_TYPE_ENCODE_CODE(type, allow_null);
5328+
return (zend_type) ZEND_TYPE_INIT_CODE(type, allow_null);
53295329
} else {
53305330
uint32_t fetch_type = zend_get_class_fetch_type_ast(ast);
53315331
if (fetch_type == ZEND_FETCH_CLASS_DEFAULT) {
@@ -5336,7 +5336,7 @@ static zend_type zend_compile_typename(zend_ast *ast, zend_bool force_allow_null
53365336
zend_string_addref(class_name);
53375337
}
53385338

5339-
return ZEND_TYPE_ENCODE_CLASS(class_name, allow_null);
5339+
return (zend_type) ZEND_TYPE_INIT_CLASS(class_name, allow_null);
53405340
}
53415341
}
53425342
}
@@ -5452,7 +5452,7 @@ void zend_compile_params(zend_ast *ast, zend_ast *return_type_ast) /* {{{ */
54525452
arg_info->name = zend_string_copy(name);
54535453
arg_info->pass_by_reference = is_ref;
54545454
arg_info->is_variadic = is_variadic;
5455-
arg_info->type = ZEND_TYPE_ENCODE_NONE();
5455+
arg_info->type = (zend_type) ZEND_TYPE_INIT_NONE();
54565456

54575457
if (type_ast) {
54585458
uint32_t default_type = default_ast ? Z_TYPE(default_node.u.constant) : IS_UNDEF;
@@ -5983,7 +5983,7 @@ void zend_compile_prop_decl(zend_ast *ast, zend_ast *type_ast, uint32_t flags) /
59835983
zend_string *name = zval_make_interned_string(zend_ast_get_zval(name_ast));
59845984
zend_string *doc_comment = NULL;
59855985
zval value_zv;
5986-
zend_type type = ZEND_TYPE_ENCODE_NONE();
5986+
zend_type type = ZEND_TYPE_INIT_NONE();
59875987

59885988
if (type_ast) {
59895989
type = zend_compile_typename(type_ast, 0);

Zend/zend_execute.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -937,7 +937,7 @@ static zend_bool zend_resolve_class_type(zend_type *type, zend_class_entry *self
937937
}
938938

939939
zend_string_release(name);
940-
*type = ZEND_TYPE_ENCODE_CE(ce, ZEND_TYPE_ALLOW_NULL(*type));
940+
*type = (zend_type) ZEND_TYPE_INIT_CE(ce, ZEND_TYPE_ALLOW_NULL(*type));
941941
return 1;
942942
}
943943

Zend/zend_types.h

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -172,31 +172,33 @@ typedef struct {
172172
#define ZEND_TYPE_ALLOW_NULL(t) \
173173
(((t).type_mask & _ZEND_TYPE_NULLABLE_BIT) != 0)
174174

175-
#define ZEND_TYPE_ENCODE_NONE() \
176-
(zend_type) {{0}}
175+
#define ZEND_TYPE_INIT_NONE() \
176+
{ .type_mask = 0 }
177177

178-
#define ZEND_TYPE_ENCODE_MASK(maybe_code) \
179-
(zend_type) { {}, (maybe_code) }
178+
#define ZEND_TYPE_INIT_MASK(_type_mask) \
179+
{ .type_mask = (_type_mask) }
180180

181-
#define ZEND_TYPE_ENCODE_CODE(code, allow_null) \
182-
ZEND_TYPE_ENCODE_MASK(((code) == _IS_BOOL ? (MAY_BE_FALSE|MAY_BE_TRUE) : (1 << (code))) \
181+
#define ZEND_TYPE_INIT_CODE(code, allow_null) \
182+
ZEND_TYPE_INIT_MASK(((code) == _IS_BOOL ? (MAY_BE_FALSE|MAY_BE_TRUE) : (1 << (code))) \
183183
| ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0))
184184

185-
#define ZEND_TYPE_ENCODE_CE(_ce, allow_null) \
186-
(zend_type) { \
187-
{ .ce = (_ce) }, \
188-
_ZEND_TYPE_CE_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) \
185+
#define ZEND_TYPE_INIT_CE(_ce, allow_null) \
186+
{ \
187+
.ce = (_ce), \
188+
.type_mask = _ZEND_TYPE_CE_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) \
189189
}
190190

191-
#define ZEND_TYPE_ENCODE_CLASS(class_name, allow_null) \
192-
(zend_type) { \
193-
{ .name = (class_name) }, \
194-
_ZEND_TYPE_NAME_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) \
191+
#define ZEND_TYPE_INIT_CLASS(class_name, allow_null) \
192+
{ \
193+
.name = (class_name), \
194+
.type_mask = _ZEND_TYPE_NAME_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) \
195195
}
196196

197-
#define ZEND_TYPE_ENCODE_CLASS_CONST(class_name, allow_null) \
198-
{ { .literal_name = (class_name) }, \
199-
_ZEND_TYPE_NAME_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) }
197+
#define ZEND_TYPE_INIT_CLASS_CONST(class_name, allow_null) \
198+
{ \
199+
.literal_name = (class_name), \
200+
.type_mask = _ZEND_TYPE_NAME_BIT | ((allow_null) ? _ZEND_TYPE_NULLABLE_BIT : 0) \
201+
}
200202

201203
typedef union _zend_value {
202204
zend_long lval; /* long value */

ext/com_dotnet/com_handlers.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ static zend_function *com_method_get(zend_object **object_ptr, zend_string *name
319319
f.arg_info = ecalloc(bindptr.lpfuncdesc->cParams, sizeof(zend_arg_info));
320320

321321
for (i = 0; i < bindptr.lpfuncdesc->cParams; i++) {
322-
f.arg_info[i].type = ZEND_TYPE_ENCODE_NONE();
322+
f.arg_info[i].type = (zend_type) ZEND_TYPE_INIT_NONE();
323323
if (bindptr.lpfuncdesc->lprgelemdescParam[i].paramdesc.wParamFlags & PARAMFLAG_FOUT) {
324324
f.arg_info[i].pass_by_reference = ZEND_SEND_BY_REF;
325325
}

ext/opcache/ZendAccelerator.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3580,7 +3580,7 @@ static zend_bool preload_try_resolve_property_types(zend_class_entry *ce)
35803580
}
35813581

35823582
zend_string_release(name);
3583-
prop->type = ZEND_TYPE_ENCODE_CE(p, ZEND_TYPE_ALLOW_NULL(prop->type));
3583+
prop->type = (zend_type) ZEND_TYPE_INIT_CE(p, ZEND_TYPE_ALLOW_NULL(prop->type));
35843584
} ZEND_HASH_FOREACH_END();
35853585
}
35863586

ext/zend_test/test.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ PHP_MINIT_FUNCTION(zend_test)
219219
zval val;
220220
ZVAL_LONG(&val, 123);
221221
zend_declare_typed_property(
222-
zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL, ZEND_TYPE_ENCODE_CODE(IS_LONG, 0));
222+
zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL,
223+
(zend_type) ZEND_TYPE_INIT_CODE(IS_LONG, 0));
223224
zend_string_release(name);
224225
}
225226

@@ -230,7 +231,7 @@ PHP_MINIT_FUNCTION(zend_test)
230231
ZVAL_NULL(&val);
231232
zend_declare_typed_property(
232233
zend_test_class, name, &val, ZEND_ACC_PUBLIC, NULL,
233-
ZEND_TYPE_ENCODE_CLASS(class_name, 1));
234+
(zend_type) ZEND_TYPE_INIT_CLASS(class_name, 1));
234235
zend_string_release(name);
235236
}
236237

@@ -240,7 +241,7 @@ PHP_MINIT_FUNCTION(zend_test)
240241
ZVAL_LONG(&val, 123);
241242
zend_declare_typed_property(
242243
zend_test_class, name, &val, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC, NULL,
243-
ZEND_TYPE_ENCODE_CODE(IS_LONG, 0));
244+
(zend_type) ZEND_TYPE_INIT_CODE(IS_LONG, 0));
244245
zend_string_release(name);
245246
}
246247

0 commit comments

Comments
 (0)