Skip to content

Commit 5c1a24b

Browse files
committed
ext/intl: Refactor error handling
1 parent 191290e commit 5c1a24b

File tree

102 files changed

+645
-780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+645
-780
lines changed

ext/intl/breakiterator/breakiterator_iterators.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ inline BreakIterator *_breakiter_prolog(zend_object_iterator *iter)
4343
if (bio->biter == NULL) {
4444
intl_errors_set(BREAKITER_ERROR_P(bio), U_INVALID_STATE_ERROR,
4545
"The BreakIterator object backing the PHP iterator is not "
46-
"properly constructed", 0);
46+
"properly constructed");
4747
}
4848
return bio->biter;
4949
}

ext/intl/breakiterator/breakiterator_methods.cpp

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,13 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, __construct)
4141
0 );
4242
}
4343

44-
static void _breakiter_factory(const char *func_name,
45-
BreakIterator *(*func)(const Locale&, UErrorCode&),
46-
INTERNAL_FUNCTION_PARAMETERS)
44+
static void _breakiter_factory(
45+
BreakIterator *(*func)(const Locale&, UErrorCode&),
46+
INTERNAL_FUNCTION_PARAMETERS)
4747
{
4848
BreakIterator *biter;
4949
char *locale_str = NULL;
5050
size_t dummy;
51-
char *msg;
5251
UErrorCode status = UErrorCode();
5352
intl_error_reset(NULL);
5453

@@ -64,10 +63,7 @@ static void _breakiter_factory(const char *func_name,
6463
biter = func(Locale::createFromName(locale_str), status);
6564
intl_error_set_code(NULL, status);
6665
if (U_FAILURE(status)) {
67-
spprintf(&msg, 0, "%s: error creating BreakIterator",
68-
func_name);
69-
intl_error_set_custom_msg(NULL, msg, 1);
70-
efree(msg);
66+
intl_error_set_custom_msg(NULL, "error creating BreakIterator");
7167
RETURN_NULL();
7268
}
7369

@@ -76,35 +72,35 @@ static void _breakiter_factory(const char *func_name,
7672

7773
U_CFUNC PHP_METHOD(IntlBreakIterator, createWordInstance)
7874
{
79-
_breakiter_factory("breakiter_create_word_instance",
75+
_breakiter_factory(
8076
&BreakIterator::createWordInstance,
8177
INTERNAL_FUNCTION_PARAM_PASSTHRU);
8278
}
8379

8480
U_CFUNC PHP_METHOD(IntlBreakIterator, createLineInstance)
8581
{
86-
_breakiter_factory("breakiter_create_line_instance",
82+
_breakiter_factory(
8783
&BreakIterator::createLineInstance,
8884
INTERNAL_FUNCTION_PARAM_PASSTHRU);
8985
}
9086

9187
U_CFUNC PHP_METHOD(IntlBreakIterator, createCharacterInstance)
9288
{
93-
_breakiter_factory("breakiter_create_character_instance",
89+
_breakiter_factory(
9490
&BreakIterator::createCharacterInstance,
9591
INTERNAL_FUNCTION_PARAM_PASSTHRU);
9692
}
9793

9894
U_CFUNC PHP_METHOD(IntlBreakIterator, createSentenceInstance)
9995
{
100-
_breakiter_factory("breakiter_create_sentence_instance",
96+
_breakiter_factory(
10197
&BreakIterator::createSentenceInstance,
10298
INTERNAL_FUNCTION_PARAM_PASSTHRU);
10399
}
104100

105101
U_CFUNC PHP_METHOD(IntlBreakIterator, createTitleInstance)
106102
{
107-
_breakiter_factory("breakiter_create_title_instance",
103+
_breakiter_factory(
108104
&BreakIterator::createTitleInstance,
109105
INTERNAL_FUNCTION_PARAM_PASSTHRU);
110106
}
@@ -149,12 +145,11 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, setText)
149145
BREAKITER_METHOD_FETCH_OBJECT;
150146

151147
ut = utext_openUTF8(ut, ZSTR_VAL(text), ZSTR_LEN(text), BREAKITER_ERROR_CODE_P(bio));
152-
INTL_METHOD_CHECK_STATUS(bio, "breakiter_set_text: error opening UText");
148+
INTL_METHOD_CHECK_STATUS(bio, "error opening UText");
153149

154150
bio->biter->setText(ut, BREAKITER_ERROR_CODE(bio));
155151
utext_close(ut); /* ICU shallow clones the UText */
156-
INTL_METHOD_CHECK_STATUS(bio, "breakiter_set_text: error calling "
157-
"BreakIterator::setText()");
152+
INTL_METHOD_CHECK_STATUS(bio, "error calling BreakIterator::setText()");
158153

159154
/* When ICU clones the UText, it does not copy the buffer, so we have to
160155
* keep the string buffer around by holding a reference to its zval. This
@@ -302,19 +297,18 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, getLocale)
302297
Z_PARAM_LONG(locale_type)
303298
ZEND_PARSE_PARAMETERS_END();
304299

305-
/* Change to ValueError? */
300+
/* TODO: Change to ValueError? */
306301
if (locale_type != ULOC_ACTUAL_LOCALE && locale_type != ULOC_VALID_LOCALE) {
307302
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
308-
"breakiter_get_locale: invalid locale type", 0);
303+
"invalid locale type");
309304
RETURN_FALSE;
310305
}
311306

312307
BREAKITER_METHOD_FETCH_OBJECT;
313308

314309
Locale locale = bio->biter->getLocale((ULocDataLocaleType)locale_type,
315310
BREAKITER_ERROR_CODE(bio));
316-
INTL_METHOD_CHECK_STATUS(bio,
317-
"breakiter_get_locale: Call to ICU method has failed");
311+
INTL_METHOD_CHECK_STATUS(bio, "Call to ICU method has failed");
318312

319313
RETURN_STRING(locale.getName());
320314
}

ext/intl/breakiterator/rulebasedbreakiterator_methods.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ U_CFUNC PHP_METHOD(IntlRuleBasedBreakIterator, getRules)
105105
if (!u8str)
106106
{
107107
intl_errors_set(BREAKITER_ERROR_P(bio), BREAKITER_ERROR_CODE(bio),
108-
"rbbi_hash_code: Error converting result to UTF-8 string",
109-
0);
108+
"Error converting result to UTF-8 string");
110109
RETURN_FALSE;
111110
}
112111
RETVAL_STR(u8str);
@@ -144,8 +143,7 @@ U_CFUNC PHP_METHOD(IntlRuleBasedBreakIterator, getRuleStatusVec)
144143
BREAKITER_ERROR_CODE(bio));
145144
if (U_FAILURE(BREAKITER_ERROR_CODE(bio))) {
146145
intl_errors_set(BREAKITER_ERROR_P(bio), BREAKITER_ERROR_CODE(bio),
147-
"rbbi_get_rule_status_vec: failed obtaining the status values",
148-
0);
146+
"failed obtaining the status values");
149147
RETURN_FALSE;
150148
}
151149

@@ -169,8 +167,7 @@ U_CFUNC PHP_METHOD(IntlRuleBasedBreakIterator, getBinaryRules)
169167

170168
if (rules_len > INT_MAX - 1) {
171169
intl_errors_set(BREAKITER_ERROR_P(bio), BREAKITER_ERROR_CODE(bio),
172-
"rbbi_get_binary_rules: the rules are too large",
173-
0);
170+
"the rules are too large");
174171
RETURN_FALSE;
175172
}
176173

0 commit comments

Comments
 (0)