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