message: Add ZEND_PARSE_PARAMETERS_START_EX compatibility.
diff: @@ -623,6 +623,44 @@ extern ZEND_DECLARE_MODULE_GLOBALS(swoole);
  sw_zend_register_class_alias(name_ns, name##_class_entry_ptr);\
  }
  +/* PHP 7 patches */
  +// Fixed in php-7.0.28, php-7.1.15RC1, php-7.2.3RC1 (https://github.com/php/php-src/commit/e88e83d3e5c33fcd76f08b23e1a2e4e8dc98ce41)
  +#if PHP_MAJOR_VERSION == 7 && ((PHP_MINOR_VERSION == 0 && PHP_RELEASE_VERSION < 28) || (PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION < 15) || (PHP_MINOR_VERSION == 2 && PHP_RELEASE_VERSION < 3))
  +#undef ZEND_PARSE_PARAMETERS_START_EX(flags, min_num_args, max_num_args)
  +#define ZEND_PARSE_PARAMETERS_START_EX(flags, min_num_args, max_num_args) do { \
  + const int _flags = (flags); \
  + int _min_num_args = (min_num_args); \
  + int _max_num_args = (max_num_args); \
  + int _num_args = EX_NUM_ARGS(); \
  + int _i; \
  + zval *_real_arg, *_arg = NULL; \
  + zend_expected_type _expected_type = Z_EXPECTED_LONG; \
  + char *_error = NULL; \
  + zend_bool _dummy; \
  + zend_bool _optional = 0; \
  + int error_code = ZPP_ERROR_OK; \
  + ((void)_i); \
  + ((void)_real_arg); \
  + ((void)_arg); \
  + ((void)_expected_type); \
  + ((void)_error); \
  + ((void)_dummy); \
  + ((void)_optional); \
  + \
  + do { \
  + if (UNEXPECTED(_num_args < _min_num_args) || \
  + (UNEXPECTED(_num_args > _max_num_args) && \
  + EXPECTED(_max_num_args >= 0))) { \
  + if (!(_flags & ZEND_PARSE_PARAMS_QUIET)) { \
  + zend_wrong_paramers_count_error(_num_args, _min_num_args, _max_num_args); \
  + } \
  + error_code = ZPP_ERROR_FAILURE; \
  + break; \
  + } \
  + _i = 0; \
  + _real_arg = ZEND_CALL_ARG(execute_data, 0);
  +#endif
  +
  /* PHP 7.3 forward compatibility */
  #ifndef GC_SET_REFCOUNT
  # define GC_SET_REFCOUNT(p, rc) do { \
  