@@ -3213,7 +3213,12 @@ PHP_FUNCTION(date_format)
3213
3213
}
3214
3214
/* }}} */
3215
3215
3216
- static bool php_date_modify (zval * object , char * modify , size_t modify_len , const bool should_throw ) /* {{{ */
3216
+ typedef enum {
3217
+ PHP_DATE_MODIFY_WARNING ,
3218
+ PHP_DATE_MODIFY_THROW
3219
+ } php_date_modify_error_mode ;
3220
+
3221
+ static bool php_date_modify (zval * object , char * modify , size_t modify_len , const php_date_modify_error_mode error_mode ) /* {{{ */
3217
3222
{
3218
3223
php_date_obj * dateobj ;
3219
3224
timelib_time * tmp_time ;
@@ -3233,7 +3238,7 @@ static bool php_date_modify(zval *object, char *modify, size_t modify_len, const
3233
3238
3234
3239
if (err && err -> error_count ) {
3235
3240
/* spit out the first library error message, at least */
3236
- if (should_throw ) {
3241
+ if (error_mode == PHP_DATE_MODIFY_THROW ) {
3237
3242
zend_string * func_name = get_active_function_or_method_name ();
3238
3243
zend_throw_exception_ex (date_ce_date_malformed_string_exception , 0 ,
3239
3244
"%s(): Failed to parse time string (%s) at position %d (%c): %s" ,
@@ -3317,7 +3322,7 @@ PHP_FUNCTION(date_modify)
3317
3322
RETURN_THROWS ();
3318
3323
}
3319
3324
3320
- if (!php_date_modify (object , modify , modify_len , false )) {
3325
+ if (!php_date_modify (object , modify , modify_len , PHP_DATE_MODIFY_WARNING )) {
3321
3326
RETURN_FALSE ;
3322
3327
}
3323
3328
@@ -3337,7 +3342,7 @@ PHP_METHOD(DateTime, modify)
3337
3342
Z_PARAM_STRING (modify , modify_len )
3338
3343
ZEND_PARSE_PARAMETERS_END ();
3339
3344
3340
- if (!php_date_modify (object , modify , modify_len , true )) {
3345
+ if (!php_date_modify (object , modify , modify_len , PHP_DATE_MODIFY_THROW )) {
3341
3346
RETURN_THROWS ();
3342
3347
}
3343
3348
@@ -3359,7 +3364,7 @@ PHP_METHOD(DateTimeImmutable, modify)
3359
3364
3360
3365
date_clone_immutable (object , & new_object );
3361
3366
3362
- if (!php_date_modify (& new_object , modify , modify_len , true )) {
3367
+ if (!php_date_modify (& new_object , modify , modify_len , PHP_DATE_MODIFY_THROW )) {
3363
3368
zval_ptr_dtor (& new_object );
3364
3369
RETURN_THROWS ();
3365
3370
}
0 commit comments