@@ -663,7 +663,7 @@ static void *_php_mb_compile_regex(const char *pattern)
663
663
ONIG_ENCODING_ASCII , & OnigSyntaxPerl , & err_info ))) {
664
664
OnigUChar err_str [ONIG_MAX_ERROR_MESSAGE_LEN ];
665
665
onig_error_code_to_str (err_str , err_code , err_info );
666
- php_error_docref (NULL , E_WARNING , "%s: %s" , pattern , err_str );
666
+ zend_throw_error (NULL , "%s: %s" , pattern , err_str );
667
667
retval = NULL ;
668
668
}
669
669
return retval ;
@@ -709,7 +709,7 @@ static void *_php_mb_compile_regex(const char *pattern)
709
709
PCRE2_CASELESS , & errnum , & err_offset , php_pcre_cctx ()))) {
710
710
PCRE2_UCHAR err_str [128 ];
711
711
pcre2_get_error_message (errnum , err_str , sizeof (err_str ));
712
- php_error_docref (NULL , E_WARNING , "%s (offset=%zu): %s" , pattern , err_offset , err_str );
712
+ zend_throw_error (NULL , "%s (offset=%zu): %s" , pattern , err_offset , err_str );
713
713
}
714
714
return retval ;
715
715
}
@@ -723,7 +723,7 @@ static int _php_mb_match_regex(void *opaque, const char *str, size_t str_len)
723
723
pcre2_match_data * match_data = php_pcre_create_match_data (0 , opaque );
724
724
if (NULL == match_data ) {
725
725
pcre2_code_free (opaque );
726
- php_error_docref (NULL , E_WARNING , "Cannot allocate match data" );
726
+ zend_throw_error (NULL , "Cannot allocate match data" );
727
727
return FAILURE ;
728
728
}
729
729
res = pcre2_match (opaque , (PCRE2_SPTR )str , str_len , 0 , 0 , match_data , php_pcre_mctx ()) >= 0 ;
@@ -1683,8 +1683,8 @@ PHP_FUNCTION(mb_substitute_character)
1683
1683
MBSTRG (current_filter_illegal_mode ) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR ;
1684
1684
MBSTRG (current_filter_illegal_substchar ) = Z_LVAL_P (arg1 );
1685
1685
} else {
1686
- php_error_docref (NULL , E_WARNING , "Unknown character" );
1687
- RETURN_FALSE ;
1686
+ zend_throw_error (NULL , "Unknown character" );
1687
+ return ;
1688
1688
}
1689
1689
}
1690
1690
break ;
@@ -1694,8 +1694,8 @@ PHP_FUNCTION(mb_substitute_character)
1694
1694
MBSTRG (current_filter_illegal_mode ) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR ;
1695
1695
MBSTRG (current_filter_illegal_substchar ) = Z_LVAL_P (arg1 );
1696
1696
} else {
1697
- php_error_docref (NULL , E_WARNING , "Unknown character" );
1698
- RETURN_FALSE ;
1697
+ zend_throw_error (NULL , "Unknown character" );
1698
+ return ;
1699
1699
}
1700
1700
break ;
1701
1701
}
@@ -1716,32 +1716,18 @@ PHP_FUNCTION(mb_preferred_mime_name)
1716
1716
} else {
1717
1717
no_encoding = mbfl_name2no_encoding (name );
1718
1718
if (no_encoding == mbfl_no_encoding_invalid ) {
1719
- php_error_docref ( NULL , E_WARNING , "Unknown encoding \"%s\"" , name );
1720
- RETVAL_FALSE ;
1719
+ zend_value_error ( "Unknown encoding \"%s\"" , name );
1720
+ RETURN_THROWS () ;
1721
1721
} else {
1722
1722
const char * preferred_name = mbfl_no2preferred_mime_name (no_encoding );
1723
1723
if (preferred_name == NULL || * preferred_name == '\0' ) {
1724
- php_error_docref ( NULL , E_WARNING , "No MIME preferred name corresponding to \"%s\"" , name );
1725
- RETVAL_FALSE ;
1724
+ zend_value_error ( "No MIME preferred name corresponding to \"%s\"" , name );
1725
+ RETURN_THROWS () ;
1726
1726
} else {
1727
1727
RETVAL_STRING ((char * )preferred_name );
1728
1728
}
1729
1729
}
1730
1730
}
1731
-
1732
- no_encoding = mbfl_name2no_encoding (name );
1733
- if (no_encoding == mbfl_no_encoding_invalid ) {
1734
- zend_value_error ("Unknown encoding \"%s\"" , name );
1735
- RETURN_THROWS ();
1736
- }
1737
-
1738
- const char * preferred_name = mbfl_no2preferred_mime_name (no_encoding );
1739
- if (preferred_name == NULL || * preferred_name == '\0' ) {
1740
- zend_value_error ("No MIME preferred name corresponding to \"%s\"" , name );
1741
- RETURN_THROWS ();
1742
- }
1743
-
1744
- RETVAL_STRING ((char * )preferred_name );
1745
1731
}
1746
1732
/* }}} */
1747
1733
@@ -2705,7 +2691,7 @@ MBSTRING_API char *php_mb_convert_encoding_ex(const char *input, size_t length,
2705
2691
/* initialize converter */
2706
2692
convd = mbfl_buffer_converter_new (from_encoding , to_encoding , string .len );
2707
2693
if (convd == NULL ) {
2708
- php_error_docref (NULL , E_WARNING , "Unable to create character encoding converter" );
2694
+ zend_throw_error (NULL , "Unable to create character encoding converter" );
2709
2695
return NULL ;
2710
2696
}
2711
2697
@@ -2766,11 +2752,12 @@ MBSTRING_API char *php_mb_convert_encoding(const char *input, size_t length, con
2766
2752
string .len = length ;
2767
2753
from_encoding = mbfl_identify_encoding (& string , list , size , MBSTRG (strict_detection ));
2768
2754
if (!from_encoding ) {
2769
- php_error_docref (NULL , E_WARNING , "Unable to detect character encoding" );
2770
- from_encoding = & mbfl_encoding_pass ;
2755
+ zend_throw_error (NULL , "Unable to detect character encoding" );
2756
+ return NULL ;
2771
2757
}
2772
2758
} else {
2773
- php_error_docref (NULL , E_WARNING , "Illegal character encoding specified" );
2759
+ zend_throw_error (NULL , "Illegal character encoding specified" );
2760
+ return NULL ;
2774
2761
}
2775
2762
if (list != NULL ) {
2776
2763
efree ((void * )list );
@@ -2796,7 +2783,7 @@ MBSTRING_API HashTable *php_mb_convert_encoding_recursive(HashTable *input, cons
2796
2783
2797
2784
if (GC_IS_RECURSIVE (input )) {
2798
2785
GC_UNPROTECT_RECURSION (input );
2799
- php_error_docref (NULL , E_WARNING , "Cannot convert recursively referenced values" );
2786
+ zend_throw_error (NULL , "Cannot convert recursively referenced values" );
2800
2787
return NULL ;
2801
2788
}
2802
2789
GC_TRY_PROTECT_RECURSION (input );
@@ -3531,14 +3518,14 @@ PHP_FUNCTION(mb_convert_variables)
3531
3518
if (elist != NULL ) {
3532
3519
efree ((void * )elist );
3533
3520
}
3534
- php_error_docref (NULL , E_WARNING , "Cannot handle recursive references" );
3535
- RETURN_FALSE ;
3521
+ zend_throw_error (NULL , "Cannot handle recursive references" );
3522
+ return ;
3536
3523
}
3537
3524
}
3538
3525
3539
3526
if (!from_encoding ) {
3540
- php_error_docref (NULL , E_WARNING , "Unable to detect encoding" );
3541
- from_encoding = & mbfl_encoding_pass ;
3527
+ zend_throw_error (NULL , "Unable to detect encoding" );
3528
+ return ;
3542
3529
}
3543
3530
}
3544
3531
if (elist != NULL ) {
@@ -3549,8 +3536,8 @@ PHP_FUNCTION(mb_convert_variables)
3549
3536
if (from_encoding != & mbfl_encoding_pass ) {
3550
3537
convd = mbfl_buffer_converter_new (from_encoding , to_encoding , 0 );
3551
3538
if (convd == NULL ) {
3552
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
3553
- RETURN_FALSE ;
3539
+ zend_throw_error (NULL , "Unable to create converter" );
3540
+ return ;
3554
3541
}
3555
3542
mbfl_buffer_converter_illegal_mode (convd , MBSTRG (current_filter_illegal_mode ));
3556
3543
mbfl_buffer_converter_illegal_substchar (convd , MBSTRG (current_filter_illegal_substchar ));
@@ -3574,8 +3561,8 @@ PHP_FUNCTION(mb_convert_variables)
3574
3561
mbfl_buffer_converter_delete (convd );
3575
3562
3576
3563
if (recursion_error ) {
3577
- php_error_docref (NULL , E_WARNING , "Cannot handle recursive references" );
3578
- RETURN_FALSE ;
3564
+ zend_throw_error (NULL , "Cannot handle recursive references" );
3565
+ return ;
3579
3566
}
3580
3567
}
3581
3568
@@ -3929,7 +3916,7 @@ PHP_FUNCTION(mb_send_mail)
3929
3916
break ;
3930
3917
default :
3931
3918
zend_type_error ("headers parameter must be string or array" );
3932
- return ;
3919
+ RETURN_THROWS () ;
3933
3920
}
3934
3921
}
3935
3922
if (extra_cmd ) {
@@ -3967,8 +3954,8 @@ PHP_FUNCTION(mb_send_mail)
3967
3954
}
3968
3955
3969
3956
if (!_tran_cs ) {
3970
- php_error_docref (NULL , E_WARNING , "Unsupported charset \"%s\" - will be regarded as ascii" , charset );
3971
- _tran_cs = & mbfl_encoding_ascii ;
3957
+ zend_throw_error (NULL , "Unsupported charset \"%s\" - will be regarded as ascii" , charset );
3958
+ RETURN_THROWS () ;
3972
3959
}
3973
3960
tran_cs = _tran_cs ;
3974
3961
}
@@ -3991,9 +3978,8 @@ PHP_FUNCTION(mb_send_mail)
3991
3978
break ;
3992
3979
3993
3980
default :
3994
- php_error_docref (NULL , E_WARNING , "Unsupported transfer encoding \"%s\" - will be regarded as 8bit" , Z_STRVAL_P (s ));
3995
- body_enc = & mbfl_encoding_8bit ;
3996
- break ;
3981
+ zend_throw_error (NULL , "Unsupported transfer encoding \"%s\" - will be regarded as 8bit" , Z_STRVAL_P (s ));
3982
+ RETURN_THROWS ();
3997
3983
}
3998
3984
suppressed_hdrs .cnt_trans_enc = 1 ;
3999
3985
}
@@ -4352,7 +4338,7 @@ MBSTRING_API int php_mb_check_encoding(const char *input, size_t length, const c
4352
4338
4353
4339
convd = php_mb_init_convd (encoding );
4354
4340
if (convd == NULL ) {
4355
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
4341
+ zend_throw_error (NULL , "Unable to create converter" );
4356
4342
return 0 ;
4357
4343
}
4358
4344
@@ -4386,13 +4372,13 @@ MBSTRING_API int php_mb_check_encoding_recursive(HashTable *vars, const zend_str
4386
4372
4387
4373
convd = php_mb_init_convd (encoding );
4388
4374
if (convd == NULL ) {
4389
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
4375
+ zend_throw_error (NULL , "Unable to create converter" );
4390
4376
return 0 ;
4391
4377
}
4392
4378
4393
4379
if (GC_IS_RECURSIVE (vars )) {
4394
4380
mbfl_buffer_converter_delete (convd );
4395
- php_error_docref (NULL , E_WARNING , "Cannot not handle circular references" );
4381
+ zend_throw_error (NULL , "Cannot not handle circular references" );
4396
4382
return 0 ;
4397
4383
}
4398
4384
GC_TRY_PROTECT_RECURSION (vars );
@@ -4502,7 +4488,7 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string
4502
4488
enc , & mbfl_encoding_wchar ,
4503
4489
mbfl_wchar_device_output , 0 , & dev );
4504
4490
if (!filter ) {
4505
- php_error_docref (NULL , E_WARNING , "Creation of filter failed" );
4491
+ zend_throw_error (NULL , "Creation of filter failed" );
4506
4492
return -1 ;
4507
4493
}
4508
4494
0 commit comments