|
29 | 29 | /* Protection from recursive self-referencing class constants */ |
30 | 30 | #define IS_CONSTANT_VISITED_MARK 0x80 |
31 | 31 |
|
32 | | -#define IS_CONSTANT_VISITED(zv) (Z_ACCESS_FLAGS_P(zv) & IS_CONSTANT_VISITED_MARK) |
33 | | -#define MARK_CONSTANT_VISITED(zv) Z_ACCESS_FLAGS_P(zv) |= IS_CONSTANT_VISITED_MARK |
34 | | -#define RESET_CONSTANT_VISITED(zv) Z_ACCESS_FLAGS_P(zv) &= ~IS_CONSTANT_VISITED_MARK |
| 32 | +#define IS_CONSTANT_VISITED(zv) (Z_CONSTANT_FLAGS_P(zv) & IS_CONSTANT_VISITED_MARK) |
| 33 | +#define MARK_CONSTANT_VISITED(zv) Z_CONSTANT_FLAGS_P(zv) |= IS_CONSTANT_VISITED_MARK |
| 34 | +#define RESET_CONSTANT_VISITED(zv) Z_CONSTANT_FLAGS_P(zv) &= ~IS_CONSTANT_VISITED_MARK |
35 | 35 |
|
36 | 36 | /* Use for special null/true/false constants. */ |
37 | 37 | static zend_constant *null_const, *true_const, *false_const; |
@@ -265,12 +265,12 @@ ZEND_API zend_constant *_zend_get_special_const(const char *name, size_t len) /* |
265 | 265 |
|
266 | 266 | ZEND_API bool zend_verify_const_access(zend_class_constant *c, zend_class_entry *scope) /* {{{ */ |
267 | 267 | { |
268 | | - if (Z_ACCESS_FLAGS(c->value) & ZEND_ACC_PUBLIC) { |
| 268 | + if (ZEND_CLASS_CONST_FLAGS(c) & ZEND_ACC_PUBLIC) { |
269 | 269 | return 1; |
270 | | - } else if (Z_ACCESS_FLAGS(c->value) & ZEND_ACC_PRIVATE) { |
| 270 | + } else if (ZEND_CLASS_CONST_FLAGS(c) & ZEND_ACC_PRIVATE) { |
271 | 271 | return (c->ce == scope); |
272 | 272 | } else { |
273 | | - ZEND_ASSERT(Z_ACCESS_FLAGS(c->value) & ZEND_ACC_PROTECTED); |
| 273 | + ZEND_ASSERT(ZEND_CLASS_CONST_FLAGS(c) & ZEND_ACC_PROTECTED); |
274 | 274 | return zend_check_protected(c->ce, scope); |
275 | 275 | } |
276 | 276 | } |
@@ -371,7 +371,7 @@ ZEND_API zval *zend_get_class_constant_ex(zend_string *class_name, zend_string * |
371 | 371 | } else { |
372 | 372 | if (!zend_verify_const_access(c, scope)) { |
373 | 373 | if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) { |
374 | | - zend_throw_error(NULL, "Cannot access %s constant %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); |
| 374 | + zend_throw_error(NULL, "Cannot access %s constant %s::%s", zend_visibility_string(ZEND_CLASS_CONST_FLAGS(c)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); |
375 | 375 | } |
376 | 376 | goto failure; |
377 | 377 | } |
@@ -467,7 +467,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope, |
467 | 467 | } else { |
468 | 468 | if (!zend_verify_const_access(c, scope)) { |
469 | 469 | if ((flags & ZEND_FETCH_CLASS_SILENT) == 0) { |
470 | | - zend_throw_error(NULL, "Cannot access %s constant %s::%s", zend_visibility_string(Z_ACCESS_FLAGS(c->value)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); |
| 470 | + zend_throw_error(NULL, "Cannot access %s constant %s::%s", zend_visibility_string(ZEND_CLASS_CONST_FLAGS(c)), ZSTR_VAL(class_name), ZSTR_VAL(constant_name)); |
471 | 471 | } |
472 | 472 | goto failure; |
473 | 473 | } |
|
0 commit comments