summaryrefslogtreecommitdiff
path: root/ext/intl/breakiterator/breakiterator_methods.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ext/intl/breakiterator/breakiterator_methods.cpp')
-rw-r--r--ext/intl/breakiterator/breakiterator_methods.cpp59
1 files changed, 28 insertions, 31 deletions
diff --git a/ext/intl/breakiterator/breakiterator_methods.cpp b/ext/intl/breakiterator/breakiterator_methods.cpp
index 1a1b4fd127..1153340e14 100644
--- a/ext/intl/breakiterator/breakiterator_methods.cpp
+++ b/ext/intl/breakiterator/breakiterator_methods.cpp
@@ -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 |
@@ -46,7 +46,7 @@ static void _breakiter_factory(const char *func_name,
{
BreakIterator *biter;
const char *locale_str = NULL;
- int dummy;
+ size_t dummy;
char *msg;
UErrorCode status = UErrorCode();
intl_error_reset(NULL TSRMLS_CC);
@@ -73,7 +73,7 @@ static void _breakiter_factory(const char *func_name,
RETURN_NULL();
}
- breakiterator_object_create(return_value, biter TSRMLS_CC);
+ breakiterator_object_create(return_value, biter, 1 TSRMLS_CC);
}
U_CFUNC PHP_FUNCTION(breakiter_create_word_instance)
@@ -123,7 +123,7 @@ U_CFUNC PHP_FUNCTION(breakiter_create_code_point_instance)
}
CodePointBreakIterator *cpbi = new CodePointBreakIterator();
- breakiterator_object_create(return_value, cpbi TSRMLS_CC);
+ breakiterator_object_create(return_value, cpbi, 1 TSRMLS_CC);
}
U_CFUNC PHP_FUNCTION(breakiter_get_text)
@@ -139,19 +139,19 @@ U_CFUNC PHP_FUNCTION(breakiter_get_text)
BREAKITER_METHOD_FETCH_OBJECT;
- if (bio->text == NULL) {
+ if (Z_ISUNDEF(bio->text)) {
RETURN_NULL();
} else {
- RETURN_ZVAL(bio->text, 1, 0);
+ ZVAL_COPY(return_value, &bio->text);
}
}
U_CFUNC PHP_FUNCTION(breakiter_set_text)
{
char *text;
- int text_len;
+ size_t text_len;
UText *ut = NULL;
- zval **textzv;
+ zval *textzv;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -169,7 +169,7 @@ U_CFUNC PHP_FUNCTION(breakiter_set_text)
/* assert it's safe to use text and text_len because zpp changes the
* arguments in the stack */
- assert(text == Z_STRVAL_PP(textzv));
+ assert(text == Z_STRVAL_P(textzv));
ut = utext_openUTF8(ut, text, text_len, BREAKITER_ERROR_CODE_P(bio));
INTL_CTOR_CHECK_STATUS(bio, "breakiter_set_text: error opening UText");
@@ -182,11 +182,8 @@ U_CFUNC PHP_FUNCTION(breakiter_set_text)
/* When ICU clones the UText, it does not copy the buffer, so we have to
* keep the string buffer around by holding a reference to its zval. This
* also allows a faste implementation of getText() */
- if (bio->text != NULL) {
- zval_ptr_dtor(&bio->text);
- }
- bio->text = *textzv;
- zval_add_ref(&bio->text);
+ zval_ptr_dtor(&bio->text);
+ ZVAL_COPY(&bio->text, textzv);
RETURN_TRUE;
}
@@ -211,7 +208,7 @@ static void _breakiter_no_args_ret_int32(
int32_t res = (bio->biter->*func)();
- RETURN_LONG((long)res);
+ RETURN_LONG((zend_long)res);
}
static void _breakiter_int32_ret_int32(
@@ -220,7 +217,7 @@ static void _breakiter_int32_ret_int32(
INTERNAL_FUNCTION_PARAMETERS)
{
char *msg;
- long arg;
+ zend_long arg;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -243,7 +240,7 @@ static void _breakiter_int32_ret_int32(
int32_t res = (bio->biter->*func)((int32_t)arg);
- RETURN_LONG((long)res);
+ RETURN_LONG((zend_long)res);
}
U_CFUNC PHP_FUNCTION(breakiter_first)
@@ -274,12 +271,12 @@ U_CFUNC PHP_FUNCTION(breakiter_next)
if (ZEND_NUM_ARGS() == 0) {
no_arg_version = true;
} else if (ZEND_NUM_ARGS() == 1) {
- zval **arg;
+ zval *arg;
int res = zend_get_parameters_ex(1, &arg);
assert(res == SUCCESS);
- if (Z_TYPE_PP(arg) == IS_NULL) {
+ if (Z_TYPE_P(arg) == IS_NULL) {
no_arg_version = true;
- ht = 0; /* pretend we don't have any argument */
+ ZEND_NUM_ARGS() = 0; /* pretend we don't have any argument */
} else {
no_arg_version = false;
}
@@ -311,7 +308,7 @@ U_CFUNC PHP_FUNCTION(breakiter_current)
int32_t res = bio->biter->current();
- RETURN_LONG((long)res);
+ RETURN_LONG((zend_long)res);
}
U_CFUNC PHP_FUNCTION(breakiter_following)
@@ -330,7 +327,7 @@ U_CFUNC PHP_FUNCTION(breakiter_preceding)
U_CFUNC PHP_FUNCTION(breakiter_is_boundary)
{
- long offset;
+ zend_long offset;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -352,12 +349,12 @@ U_CFUNC PHP_FUNCTION(breakiter_is_boundary)
UBool res = bio->biter->isBoundary((int32_t)offset);
- RETURN_BOOL((long)res);
+ RETURN_BOOL((zend_long)res);
}
U_CFUNC PHP_FUNCTION(breakiter_get_locale)
{
- long locale_type;
+ zend_long locale_type;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -380,12 +377,12 @@ U_CFUNC PHP_FUNCTION(breakiter_get_locale)
INTL_METHOD_CHECK_STATUS(bio,
"breakiter_get_locale: Call to ICU method has failed");
- RETURN_STRING(locale.getName(), 1);
+ RETURN_STRING(locale.getName());
}
U_CFUNC PHP_FUNCTION(breakiter_get_parts_iterator)
{
- long key_type = 0;
+ zend_long key_type = 0;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -421,16 +418,16 @@ U_CFUNC PHP_FUNCTION(breakiter_get_error_code)
}
/* Fetch the object (without resetting its last error code ). */
- bio = (BreakIterator_object*)zend_object_store_get_object(object TSRMLS_CC);
+ bio = Z_INTL_BREAKITERATOR_P(object);
if (bio == NULL)
RETURN_FALSE;
- RETURN_LONG((long)BREAKITER_ERROR_CODE(bio));
+ RETURN_LONG((zend_long)BREAKITER_ERROR_CODE(bio));
}
U_CFUNC PHP_FUNCTION(breakiter_get_error_message)
{
- const char* message = NULL;
+ zend_string* message = NULL;
BREAKITER_METHOD_INIT_VARS;
object = getThis();
@@ -442,11 +439,11 @@ U_CFUNC PHP_FUNCTION(breakiter_get_error_message)
/* Fetch the object (without resetting its last error code ). */
- bio = (BreakIterator_object*)zend_object_store_get_object(object TSRMLS_CC);
+ bio = Z_INTL_BREAKITERATOR_P(object);
if (bio == NULL)
RETURN_FALSE;
/* Return last error message. */
message = intl_error_get_message(BREAKITER_ERROR_P(bio) TSRMLS_CC);
- RETURN_STRING(message, 0);
+ RETURN_STR(message);
}