@@ -63,6 +63,7 @@ static void _breakiter_factory(const char *func_name,
63
63
64
64
biter = func (Locale::createFromName (locale_str), status);
65
65
intl_error_set_code (NULL , status);
66
+ // Todo check if this can happen?
66
67
if (U_FAILURE (status)) {
67
68
spprintf (&msg, 0 , " %s: error creating BreakIterator" ,
68
69
func_name);
@@ -170,7 +171,6 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, setText)
170
171
}
171
172
172
173
static void _breakiter_no_args_ret_int32 (
173
- const char *func_name,
174
174
int32_t (BreakIterator::*func)(),
175
175
INTERNAL_FUNCTION_PARAMETERS)
176
176
{
@@ -190,11 +190,9 @@ static void _breakiter_no_args_ret_int32(
190
190
}
191
191
192
192
static void _breakiter_int32_ret_int32 (
193
- const char *func_name,
194
193
int32_t (BreakIterator::*func)(int32_t ),
195
194
INTERNAL_FUNCTION_PARAMETERS)
196
195
{
197
- char *msg;
198
196
zend_long arg;
199
197
BREAKITER_METHOD_INIT_VARS;
200
198
object = ZEND_THIS;
@@ -206,11 +204,8 @@ static void _breakiter_int32_ret_int32(
206
204
BREAKITER_METHOD_FETCH_OBJECT;
207
205
208
206
if (arg < INT32_MIN || arg > INT32_MAX) {
209
- spprintf (&msg, 0 , " %s: offset argument is outside bounds of "
210
- " a 32-bit wide integer" , func_name);
211
- intl_error_set (NULL , U_ILLEGAL_ARGUMENT_ERROR, msg, 1 );
212
- efree (msg);
213
- RETURN_FALSE;
207
+ zend_argument_value_error (1 , " must be between %d and %d" , INT32_MIN, INT32_MAX);
208
+ RETURN_THROWS ();
214
209
}
215
210
216
211
int32_t res = (bio->biter ->*func)((int32_t )arg);
@@ -220,22 +215,19 @@ static void _breakiter_int32_ret_int32(
220
215
221
216
U_CFUNC PHP_METHOD (IntlBreakIterator, first)
222
217
{
223
- _breakiter_no_args_ret_int32 (" breakiter_first" ,
224
- &BreakIterator::first,
218
+ _breakiter_no_args_ret_int32 (&BreakIterator::first,
225
219
INTERNAL_FUNCTION_PARAM_PASSTHRU);
226
220
}
227
221
228
222
U_CFUNC PHP_METHOD (IntlBreakIterator, last)
229
223
{
230
- _breakiter_no_args_ret_int32 (" breakiter_last" ,
231
- &BreakIterator::last,
224
+ _breakiter_no_args_ret_int32 (&BreakIterator::last,
232
225
INTERNAL_FUNCTION_PARAM_PASSTHRU);
233
226
}
234
227
235
228
U_CFUNC PHP_METHOD (IntlBreakIterator, previous)
236
229
{
237
- _breakiter_no_args_ret_int32 (" breakiter_previous" ,
238
- &BreakIterator::previous,
230
+ _breakiter_no_args_ret_int32 (&BreakIterator::previous,
239
231
INTERNAL_FUNCTION_PARAM_PASSTHRU);
240
232
}
241
233
@@ -253,12 +245,10 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, next)
253
245
if (arg == NULL ) {
254
246
ZEND_NUM_ARGS () = 0 ; /* pretend we don't have any argument */
255
247
no_arg_version:
256
- _breakiter_no_args_ret_int32 (" breakiter_next" ,
257
- &BreakIterator::next,
248
+ _breakiter_no_args_ret_int32 (&BreakIterator::next,
258
249
INTERNAL_FUNCTION_PARAM_PASSTHRU);
259
250
} else {
260
- _breakiter_int32_ret_int32 (" breakiter_next" ,
261
- &BreakIterator::next,
251
+ _breakiter_int32_ret_int32 (&BreakIterator::next,
262
252
INTERNAL_FUNCTION_PARAM_PASSTHRU);
263
253
}
264
254
}
@@ -281,14 +271,14 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, current)
281
271
282
272
U_CFUNC PHP_METHOD (IntlBreakIterator, following)
283
273
{
284
- _breakiter_int32_ret_int32 (" breakiter_following " ,
274
+ _breakiter_int32_ret_int32 (
285
275
&BreakIterator::following,
286
276
INTERNAL_FUNCTION_PARAM_PASSTHRU);
287
277
}
288
278
289
279
U_CFUNC PHP_METHOD (IntlBreakIterator, preceding)
290
280
{
291
- _breakiter_int32_ret_int32 (" breakiter_preceding " ,
281
+ _breakiter_int32_ret_int32 (
292
282
&BreakIterator::preceding,
293
283
INTERNAL_FUNCTION_PARAM_PASSTHRU);
294
284
}
@@ -305,10 +295,8 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, isBoundary)
305
295
}
306
296
307
297
if (offset < INT32_MIN || offset > INT32_MAX) {
308
- intl_error_set (NULL , U_ILLEGAL_ARGUMENT_ERROR,
309
- " breakiter_is_boundary: offset argument is outside bounds of "
310
- " a 32-bit wide integer" , 0 );
311
- RETURN_FALSE;
298
+ zend_argument_value_error (1 , " must be between %d and %d" , INT32_MIN, INT32_MAX);
299
+ RETURN_THROWS ();
312
300
}
313
301
314
302
BREAKITER_METHOD_FETCH_OBJECT;
@@ -328,6 +316,7 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, getLocale)
328
316
RETURN_THROWS ();
329
317
}
330
318
319
+ /* Change to ValueError? */
331
320
if (locale_type != ULOC_ACTUAL_LOCALE && locale_type != ULOC_VALID_LOCALE) {
332
321
intl_error_set (NULL , U_ILLEGAL_ARGUMENT_ERROR,
333
322
" breakiter_get_locale: invalid locale type" , 0 );
@@ -357,9 +346,9 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, getPartsIterator)
357
346
if (key_type != PARTS_ITERATOR_KEY_SEQUENTIAL
358
347
&& key_type != PARTS_ITERATOR_KEY_LEFT
359
348
&& key_type != PARTS_ITERATOR_KEY_RIGHT) {
360
- intl_error_set ( NULL , U_ILLEGAL_ARGUMENT_ERROR,
361
- " breakiter_get_parts_iterator: bad key type " , 0 );
362
- RETURN_FALSE ;
349
+ zend_argument_value_error ( 1 , " must be one of IntlPartsIterator::KEY_SEQUENTIAL, "
350
+ " IntlPartsIterator::KEY_LEFT, or IntlPartsIterator::KEY_RIGHT " );
351
+ RETURN_THROWS () ;
363
352
}
364
353
365
354
BREAKITER_METHOD_FETCH_OBJECT;
0 commit comments