Skip to content

Commit 4c6ecc8

Browse files
committed
Refactor IntlBreakIterator::next() handling
1 parent 7af0466 commit 4c6ecc8

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

ext/intl/breakiterator/breakiterator_methods.cpp

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -240,23 +240,18 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, previous)
240240

241241
U_CFUNC PHP_METHOD(IntlBreakIterator, next)
242242
{
243-
bool no_arg_version = false;
243+
zval *arg = NULL;
244244

245245
if (ZEND_NUM_ARGS() == 0) {
246-
no_arg_version = true;
247-
} else if (ZEND_NUM_ARGS() == 1) {
248-
zval *arg;
249-
int res = zend_parse_parameters(ZEND_NUM_ARGS(), "z", &arg);
250-
assert(res == SUCCESS);
251-
if (Z_TYPE_P(arg) == IS_NULL) {
252-
no_arg_version = true;
253-
ZEND_NUM_ARGS() = 0; /* pretend we don't have any argument */
254-
} else {
255-
no_arg_version = false;
256-
}
246+
goto no_arg_version;
247+
}
248+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "z!", &arg) == FAILURE) {
249+
RETURN_THROWS();
257250
}
258251

259-
if (no_arg_version) {
252+
if (arg == NULL) {
253+
ZEND_NUM_ARGS() = 0; /* pretend we don't have any argument */
254+
no_arg_version:
260255
_breakiter_no_args_ret_int32("breakiter_next",
261256
&BreakIterator::next,
262257
INTERNAL_FUNCTION_PARAM_PASSTHRU);

0 commit comments

Comments
 (0)