]> granicus.if.org Git - php/commitdiff
Gereralize VA macro expansion mechanism
authorAnatol Belski <ab@php.net>
Thu, 21 Jun 2018 09:47:10 +0000 (11:47 +0200)
committerAnatol Belski <ab@php.net>
Thu, 21 Jun 2018 09:50:48 +0000 (11:50 +0200)
Avoids code duplication and makes in usable elsewhere.

Zend/zend_ast.h
Zend/zend_portability.h

index c5e4a1747417cb17b7ac4f455ae4d1bf07a9ea18..d9640a70cdc1c38ac9d40f525a236e96d78c5b34 100644 (file)
@@ -204,27 +204,12 @@ ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_zval_from_long(zend_long lval)
 ZEND_API zend_ast * ZEND_FASTCALL zend_ast_create_constant(zend_string *name, zend_ast_attr attr);
 
 #if ZEND_AST_SPEC
-# ifdef ZEND_WIN32
-#  define ZEND_AST_EXPAND_VA(a) a
-# endif
-
-# ifdef ZEND_WIN32
-#  define ZEND_AST_SPEC_CALL(name, ...) \
-       ZEND_AST_EXPAND_VA(ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
-# else
-#  define ZEND_AST_SPEC_CALL(name, ...) \
-       ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)
-# endif
+# define ZEND_AST_SPEC_CALL(name, ...) \
+       ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
 # define ZEND_AST_SPEC_CALL_(name, _, _4, _3, _2, _1, suffix, ...) \
        name ## suffix
-
-# ifdef ZEND_WIN32
-#  define ZEND_AST_SPEC_CALL_EX(name, ...) \
-       ZEND_AST_EXPAND_VA(ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
-# else
-#  define ZEND_AST_SPEC_CALL_EX(name, ...) \
-       ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__)
-# endif
+# define ZEND_AST_SPEC_CALL_EX(name, ...) \
+       ZEND_EXPAND_VA(ZEND_AST_SPEC_CALL_EX_(name, __VA_ARGS__, _4, _3, _2, _1, _0)(__VA_ARGS__))
 # define ZEND_AST_SPEC_CALL_EX_(name, _, _5, _4, _3, _2, _1, suffix, ...) \
        name ## suffix
 
index 8f0eb9cda968181cf02f02426982e8feeccd0fe8..70f13c300fe67c1ef596cc94eb24fa87bcd0108b 100644 (file)
@@ -638,6 +638,13 @@ static zend_always_inline double _zend_get_nan(void) /* {{{ */
 #define ZEND_SLIDE_TO_ALIGNED(alignment, ptr) (((zend_uintptr_t)(ptr) + ((alignment)-1)) & ~((alignment)-1))
 #define ZEND_SLIDE_TO_ALIGNED16(ptr) ZEND_SLIDE_TO_ALIGNED(Z_UL(16), ptr)
 
+#ifdef ZEND_WIN32
+# define _ZEND_EXPAND_VA(a) a
+# define ZEND_EXPAND_VA(code) _ZEND_EXPAND_VA(code)
+#else
+# define ZEND_EXPAND_VA(code) code
+#endif
+
 #endif /* ZEND_PORTABILITY_H */
 
 /*