diff options
Diffstat (limited to 'ext/intl/common/common_enum.h')
| -rw-r--r-- | ext/intl/common/common_enum.h | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/ext/intl/common/common_enum.h b/ext/intl/common/common_enum.h index 4c6abdb8f5..b9b87c17e0 100644 --- a/ext/intl/common/common_enum.h +++ b/ext/intl/common/common_enum.h @@ -1,6 +1,6 @@ /* +----------------------------------------------------------------------+ - | PHP Version 5 | + | PHP Version 7 | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -38,40 +38,46 @@ extern "C" { #define INTLITERATOR_ERROR_CODE_P(ii) &(INTL_ERROR_CODE(INTLITERATOR_ERROR(ii))) #define INTLITERATOR_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(IntlIterator, ii) -#define INTLITERATOR_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(IntlIterator, ii) +#define INTLITERATOR_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(INTL_ITERATOR, ii) #define INTLITERATOR_METHOD_FETCH_OBJECT\ object = getThis(); \ INTLITERATOR_METHOD_FETCH_OBJECT_NO_CHECK; \ if (ii->iterator == NULL) { \ - intl_errors_set(&ii->err, U_ILLEGAL_ARGUMENT_ERROR, "Found unconstructed IntlIterator", 0 TSRMLS_CC); \ + intl_errors_set(&ii->err, U_ILLEGAL_ARGUMENT_ERROR, "Found unconstructed IntlIterator", 0); \ RETURN_FALSE; \ } typedef struct { - zend_object zo; intl_error err; zend_object_iterator *iterator; + zend_object zo; } IntlIterator_object; + +static inline IntlIterator_object *php_intl_iterator_fetch_object(zend_object *obj) { + return (IntlIterator_object *)((char*)(obj) - XtOffsetOf(IntlIterator_object, zo)); +} +#define Z_INTL_ITERATOR_P(zv) php_intl_iterator_fetch_object(Z_OBJ_P(zv)) + typedef struct { zend_object_iterator zoi; - zval *current; - zval *wrapping_obj; - void (*destroy_it)(zend_object_iterator *iterator TSRMLS_DC); + zval current; + zval wrapping_obj; + void (*destroy_it)(zend_object_iterator *iterator); } zoi_with_current; extern zend_class_entry *IntlIterator_ce_ptr; extern zend_object_handlers IntlIterator_handlers; -U_CFUNC void zoi_with_current_dtor(zend_object_iterator *iter TSRMLS_DC); -U_CFUNC int zoi_with_current_valid(zend_object_iterator *iter TSRMLS_DC); -U_CFUNC void zoi_with_current_get_current_data(zend_object_iterator *iter, zval ***data TSRMLS_DC); -U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter TSRMLS_DC); +U_CFUNC void zoi_with_current_dtor(zend_object_iterator *iter); +U_CFUNC int zoi_with_current_valid(zend_object_iterator *iter); +U_CFUNC zval *zoi_with_current_get_current_data(zend_object_iterator *iter); +U_CFUNC void zoi_with_current_invalidate_current(zend_object_iterator *iter); #ifdef __cplusplus -U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object TSRMLS_DC); +U_CFUNC void IntlIterator_from_StringEnumeration(StringEnumeration *se, zval *object); #endif -U_CFUNC void intl_register_IntlIterator_class(TSRMLS_D); +U_CFUNC void intl_register_IntlIterator_class(void); #endif // INTL_COMMON_ENUM_H |
