@@ -37,7 +37,7 @@ void free_zend_constant(zval *zv)
37
37
{
38
38
zend_constant * c = Z_PTR_P (zv );
39
39
40
- if (!(c -> flags & CONST_PERSISTENT )) {
40
+ if (!(ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT )) {
41
41
zval_ptr_dtor_nogc (& c -> value );
42
42
if (c -> name ) {
43
43
zend_string_release_ex (c -> name , 0 );
@@ -82,7 +82,7 @@ static int clean_module_constant(zval *el, void *arg)
82
82
zend_constant * c = (zend_constant * )Z_PTR_P (el );
83
83
int module_number = * (int * )arg ;
84
84
85
- if (c -> module_number == module_number ) {
85
+ if (ZEND_CONSTANT_MODULE_NUMBER ( c ) == module_number ) {
86
86
return 1 ;
87
87
} else {
88
88
return 0 ;
@@ -151,9 +151,8 @@ ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int
151
151
zend_constant c ;
152
152
153
153
ZVAL_NULL (& c .value );
154
- c . flags = flags ;
154
+ ZEND_CONSTANT_SET_FLAGS ( & c , flags , module_number ) ;
155
155
c .name = zend_string_init_interned (name , name_len , flags & CONST_PERSISTENT );
156
- c .module_number = module_number ;
157
156
zend_register_constant (& c );
158
157
}
159
158
@@ -162,9 +161,8 @@ ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zen
162
161
zend_constant c ;
163
162
164
163
ZVAL_BOOL (& c .value , bval );
165
- c . flags = flags ;
164
+ ZEND_CONSTANT_SET_FLAGS ( & c , flags , module_number ) ;
166
165
c .name = zend_string_init_interned (name , name_len , flags & CONST_PERSISTENT );
167
- c .module_number = module_number ;
168
166
zend_register_constant (& c );
169
167
}
170
168
@@ -173,9 +171,8 @@ ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zen
173
171
zend_constant c ;
174
172
175
173
ZVAL_LONG (& c .value , lval );
176
- c . flags = flags ;
174
+ ZEND_CONSTANT_SET_FLAGS ( & c , flags , module_number ) ;
177
175
c .name = zend_string_init_interned (name , name_len , flags & CONST_PERSISTENT );
178
- c .module_number = module_number ;
179
176
zend_register_constant (& c );
180
177
}
181
178
@@ -185,9 +182,8 @@ ZEND_API void zend_register_double_constant(const char *name, size_t name_len, d
185
182
zend_constant c ;
186
183
187
184
ZVAL_DOUBLE (& c .value , dval );
188
- c . flags = flags ;
185
+ ZEND_CONSTANT_SET_FLAGS ( & c , flags , module_number ) ;
189
186
c .name = zend_string_init_interned (name , name_len , flags & CONST_PERSISTENT );
190
- c .module_number = module_number ;
191
187
zend_register_constant (& c );
192
188
}
193
189
@@ -197,9 +193,8 @@ ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len,
197
193
zend_constant c ;
198
194
199
195
ZVAL_STR (& c .value , zend_string_init_interned (strval , strlen , flags & CONST_PERSISTENT ));
200
- c . flags = flags ;
196
+ ZEND_CONSTANT_SET_FLAGS ( & c , flags , module_number ) ;
201
197
c .name = zend_string_init_interned (name , name_len , flags & CONST_PERSISTENT );
202
- c .module_number = module_number ;
203
198
zend_register_constant (& c );
204
199
}
205
200
@@ -257,7 +252,7 @@ static inline zend_constant *zend_get_constant_str_impl(const char *name, size_t
257
252
char * lcname = do_alloca (name_len + 1 , use_heap );
258
253
zend_str_tolower_copy (lcname , name , name_len );
259
254
if ((c = zend_hash_str_find_ptr (EG (zend_constants ), lcname , name_len )) != NULL ) {
260
- if (c -> flags & CONST_CS ) {
255
+ if (ZEND_CONSTANT_FLAGS ( c ) & CONST_CS ) {
261
256
c = NULL ;
262
257
}
263
258
} else {
@@ -288,7 +283,7 @@ static inline zend_constant *zend_get_constant_impl(zend_string *name)
288
283
zv = zend_hash_str_find (EG (zend_constants ), lcname , ZSTR_LEN (name ));
289
284
if (zv != NULL ) {
290
285
c = Z_PTR_P (zv );
291
- if (c -> flags & CONST_CS ) {
286
+ if (ZEND_CONSTANT_FLAGS ( c ) & CONST_CS ) {
292
287
c = NULL ;
293
288
}
294
289
} else {
@@ -436,7 +431,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
436
431
/* try lowercase */
437
432
zend_str_tolower (lcname + prefix_len + 1 , const_name_len );
438
433
if ((c = zend_hash_str_find_ptr (EG (zend_constants ), lcname , lcname_len )) != NULL ) {
439
- if ((c -> flags & CONST_CS ) != 0 ) {
434
+ if ((ZEND_CONSTANT_FLAGS ( c ) & CONST_CS ) != 0 ) {
440
435
c = NULL ;
441
436
}
442
437
}
@@ -465,7 +460,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
465
460
}
466
461
467
462
if (!(flags & ZEND_GET_CONSTANT_NO_DEPRECATION_CHECK )) {
468
- if (!(c -> flags & (CONST_CS |CONST_CT_SUBST )) && is_access_deprecated (c , name )) {
463
+ if (!(ZEND_CONSTANT_FLAGS ( c ) & (CONST_CS |CONST_CT_SUBST )) && is_access_deprecated (c , name )) {
469
464
zend_error (E_DEPRECATED ,
470
465
"Case-insensitive constants are deprecated. "
471
466
"The correct casing for this constant is \"%s\"" ,
@@ -479,12 +474,12 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
479
474
static void * zend_hash_add_constant (HashTable * ht , zend_string * key , zend_constant * c )
480
475
{
481
476
void * ret ;
482
- zend_constant * copy = pemalloc (sizeof (zend_constant ), c -> flags & CONST_PERSISTENT );
477
+ zend_constant * copy = pemalloc (sizeof (zend_constant ), ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT );
483
478
484
479
memcpy (copy , c , sizeof (zend_constant ));
485
480
ret = zend_hash_add_ptr (ht , key , copy );
486
481
if (!ret ) {
487
- pefree (copy , c -> flags & CONST_PERSISTENT );
482
+ pefree (copy , ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT );
488
483
}
489
484
return ret ;
490
485
}
@@ -499,14 +494,14 @@ ZEND_API int zend_register_constant(zend_constant *c)
499
494
printf ("Registering constant for module %d\n" , c -> module_number );
500
495
#endif
501
496
502
- if (!(c -> flags & CONST_CS )) {
503
- lowercase_name = zend_string_tolower_ex (c -> name , c -> flags & CONST_PERSISTENT );
497
+ if (!(ZEND_CONSTANT_FLAGS ( c ) & CONST_CS )) {
498
+ lowercase_name = zend_string_tolower_ex (c -> name , ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT );
504
499
lowercase_name = zend_new_interned_string (lowercase_name );
505
500
name = lowercase_name ;
506
501
} else {
507
502
char * slash = strrchr (ZSTR_VAL (c -> name ), '\\' );
508
503
if (slash ) {
509
- lowercase_name = zend_string_init (ZSTR_VAL (c -> name ), ZSTR_LEN (c -> name ), c -> flags & CONST_PERSISTENT );
504
+ lowercase_name = zend_string_init (ZSTR_VAL (c -> name ), ZSTR_LEN (c -> name ), ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT );
510
505
zend_str_tolower (ZSTR_VAL (lowercase_name ), slash - ZSTR_VAL (c -> name ));
511
506
lowercase_name = zend_new_interned_string (lowercase_name );
512
507
name = lowercase_name ;
@@ -525,7 +520,7 @@ ZEND_API int zend_register_constant(zend_constant *c)
525
520
}
526
521
zend_error (E_NOTICE ,"Constant %s already defined" , ZSTR_VAL (name ));
527
522
zend_string_release (c -> name );
528
- if (!(c -> flags & CONST_PERSISTENT )) {
523
+ if (!(ZEND_CONSTANT_FLAGS ( c ) & CONST_PERSISTENT )) {
529
524
zval_ptr_dtor_nogc (& c -> value );
530
525
}
531
526
ret = FAILURE ;
0 commit comments