Revert "Zend/zend_type_code: remove hard-coded integer values and"

This reverts commit c7637ed1c0.
This commit is contained in:
David CARLIER 2023-03-03 21:19:58 +00:00
parent 244b883c07
commit 3310463484
2 changed files with 30 additions and 40 deletions

View File

@ -18,48 +18,43 @@
#define ZEND_TYPE_CODE_H
enum {
/* Regular data types */
IS_UNDEF,
IS_NULL,
IS_FALSE,
IS_TRUE,
IS_LONG,
IS_DOUBLE,
IS_STRING,
IS_ARRAY,
IS_OBJECT,
IS_RESOURCE,
IS_REFERENCE,
IS_CONSTANT_AST, /* Constant expressions */
/**
* One after the largest regular data type; used internally
* for overlapping ranges below.
*/
_IS_REGULAR_END,
/* Regular data types: Must be in sync with zend_variables.c. */
IS_UNDEF = 0,
IS_NULL = 1,
IS_FALSE = 2,
IS_TRUE = 3,
IS_LONG = 4,
IS_DOUBLE = 5,
IS_STRING = 6,
IS_ARRAY = 7,
IS_OBJECT = 8,
IS_RESOURCE = 9,
IS_REFERENCE = 10,
IS_CONSTANT_AST = 11, /* Constant expressions */
/* Fake types used only for type hinting.
* These are allowed to overlap with the types below. */
IS_CALLABLE = _IS_REGULAR_END,
IS_ITERABLE,
IS_VOID,
IS_STATIC,
IS_MIXED,
IS_NEVER,
_IS_FAKE_END,
IS_CALLABLE = 12,
IS_ITERABLE = 13,
IS_VOID = 14,
IS_STATIC = 15,
IS_MIXED = 16,
IS_NEVER = 17,
/* internal types */
IS_INDIRECT = _IS_REGULAR_END,
IS_PTR,
IS_ALIAS_PTR,
_IS_ERROR,
_IS_INTERNAL_END,
IS_INDIRECT = 12,
IS_PTR = 13,
IS_ALIAS_PTR = 14,
_IS_ERROR = 15,
/* used for casts */
_IS_BOOL = _IS_FAKE_END > _IS_INTERNAL_END ? _IS_FAKE_END : _IS_INTERNAL_END,
_IS_NUMBER,
_IS_BOOL = 18,
_IS_NUMBER = 19,
};
#define ZEND_SAME_FAKE_TYPE(faketype, realtype) ( \
(faketype) == (realtype) \
|| ((faketype) == _IS_BOOL && ((realtype) == IS_TRUE || (realtype) == IS_FALSE)) \
)
#endif /* ZEND_TYPE_CODE_H */

View File

@ -51,11 +51,6 @@ static const zend_rc_dtor_func_t zend_rc_dtor_func[] = {
[IS_CONSTANT_AST] = (zend_rc_dtor_func_t)zend_ast_ref_destroy
};
#if ZEND_GCC_VERSION >= 4006 || defined(__clang__)
_Static_assert(sizeof(zend_rc_dtor_func) / sizeof(zend_rc_dtor_func[0]) == _IS_REGULAR_END,
"zend_rc_dtor_func has the wrong size");
#endif
ZEND_API void ZEND_FASTCALL rc_dtor_func(zend_refcounted *p)
{
ZEND_ASSERT(GC_TYPE(p) <= IS_CONSTANT_AST);