summaryrefslogtreecommitdiff
path: root/ext/intl/common/common_enum.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/intl/common/common_enum.h')
-rw-r--r--ext/intl/common/common_enum.h32
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