File tree Expand file tree Collapse file tree 2 files changed +30
-40
lines changed
Expand file tree Collapse file tree 2 files changed +30
-40
lines changed Original file line number Diff line number Diff line change 1818#define ZEND_TYPE_CODE_H
1919
2020enum {
21- /* Regular data types */
22- IS_UNDEF ,
23- IS_NULL ,
24- IS_FALSE ,
25- IS_TRUE ,
26- IS_LONG ,
27- IS_DOUBLE ,
28- IS_STRING ,
29- IS_ARRAY ,
30- IS_OBJECT ,
31- IS_RESOURCE ,
32- IS_REFERENCE ,
33- IS_CONSTANT_AST , /* Constant expressions */
34-
35- /**
36- * One after the largest regular data type; used internally
37- * for overlapping ranges below.
38- */
39- _IS_REGULAR_END ,
21+ /* Regular data types: Must be in sync with zend_variables.c. */
22+ IS_UNDEF = 0 ,
23+ IS_NULL = 1 ,
24+ IS_FALSE = 2 ,
25+ IS_TRUE = 3 ,
26+ IS_LONG = 4 ,
27+ IS_DOUBLE = 5 ,
28+ IS_STRING = 6 ,
29+ IS_ARRAY = 7 ,
30+ IS_OBJECT = 8 ,
31+ IS_RESOURCE = 9 ,
32+ IS_REFERENCE = 10 ,
33+ IS_CONSTANT_AST = 11 , /* Constant expressions */
4034
4135 /* Fake types used only for type hinting.
4236 * These are allowed to overlap with the types below. */
43- IS_CALLABLE = _IS_REGULAR_END ,
44- IS_ITERABLE ,
45- IS_VOID ,
46- IS_STATIC ,
47- IS_MIXED ,
48- IS_NEVER ,
49-
50- _IS_FAKE_END ,
37+ IS_CALLABLE = 12 ,
38+ IS_ITERABLE = 13 ,
39+ IS_VOID = 14 ,
40+ IS_STATIC = 15 ,
41+ IS_MIXED = 16 ,
42+ IS_NEVER = 17 ,
5143
5244 /* internal types */
53- IS_INDIRECT = _IS_REGULAR_END ,
54- IS_PTR ,
55- IS_ALIAS_PTR ,
56- _IS_ERROR ,
57-
58- _IS_INTERNAL_END ,
45+ IS_INDIRECT = 12 ,
46+ IS_PTR = 13 ,
47+ IS_ALIAS_PTR = 14 ,
48+ _IS_ERROR = 15 ,
5949
6050 /* used for casts */
61- _IS_BOOL = _IS_FAKE_END > _IS_INTERNAL_END ? _IS_FAKE_END : _IS_INTERNAL_END ,
62- _IS_NUMBER ,
51+ _IS_BOOL = 18 ,
52+ _IS_NUMBER = 19 ,
6353};
6454
55+ #define ZEND_SAME_FAKE_TYPE (faketype , realtype ) ( \
56+ (faketype) == (realtype) \
57+ || ((faketype) == _IS_BOOL && ((realtype) == IS_TRUE || (realtype) == IS_FALSE)) \
58+ )
59+
6560#endif /* ZEND_TYPE_CODE_H */
Original file line number Diff line number Diff line change @@ -51,11 +51,6 @@ static const zend_rc_dtor_func_t zend_rc_dtor_func[] = {
5151 [IS_CONSTANT_AST ] = (zend_rc_dtor_func_t )zend_ast_ref_destroy
5252};
5353
54- #if ZEND_GCC_VERSION >= 4006 || defined(__clang__ )
55- _Static_assert (sizeof (zend_rc_dtor_func ) / sizeof (zend_rc_dtor_func [0 ]) == _IS_REGULAR_END ,
56- "zend_rc_dtor_func has the wrong size" );
57- #endif
58-
5954ZEND_API void ZEND_FASTCALL rc_dtor_func (zend_refcounted * p )
6055{
6156 ZEND_ASSERT (GC_TYPE (p ) <= IS_CONSTANT_AST );
You can’t perform that action at this time.
0 commit comments