@@ -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
@@ -2689,7 +2675,7 @@ MBSTRING_API char *php_mb_convert_encoding_ex(const char *input, size_t length,
2689
2675
/* initialize converter */
2690
2676
convd = mbfl_buffer_converter_new (from_encoding , to_encoding , string .len );
2691
2677
if (convd == NULL ) {
2692
- php_error_docref (NULL , E_WARNING , "Unable to create character encoding converter" );
2678
+ zend_throw_error (NULL , "Unable to create character encoding converter" );
2693
2679
return NULL ;
2694
2680
}
2695
2681
@@ -2750,11 +2736,12 @@ MBSTRING_API char *php_mb_convert_encoding(const char *input, size_t length, con
2750
2736
string .len = length ;
2751
2737
from_encoding = mbfl_identify_encoding (& string , list , size , MBSTRG (strict_detection ));
2752
2738
if (!from_encoding ) {
2753
- php_error_docref (NULL , E_WARNING , "Unable to detect character encoding" );
2754
- from_encoding = & mbfl_encoding_pass ;
2739
+ zend_throw_error (NULL , "Unable to detect character encoding" );
2740
+ return NULL ;
2755
2741
}
2756
2742
} else {
2757
- php_error_docref (NULL , E_WARNING , "Illegal character encoding specified" );
2743
+ zend_throw_error (NULL , "Illegal character encoding specified" );
2744
+ return NULL ;
2758
2745
}
2759
2746
if (list != NULL ) {
2760
2747
efree ((void * )list );
@@ -2780,7 +2767,7 @@ MBSTRING_API HashTable *php_mb_convert_encoding_recursive(HashTable *input, cons
2780
2767
2781
2768
if (GC_IS_RECURSIVE (input )) {
2782
2769
GC_UNPROTECT_RECURSION (input );
2783
- php_error_docref (NULL , E_WARNING , "Cannot convert recursively referenced values" );
2770
+ zend_throw_error (NULL , "Cannot convert recursively referenced values" );
2784
2771
return NULL ;
2785
2772
}
2786
2773
GC_TRY_PROTECT_RECURSION (input );
@@ -3515,14 +3502,14 @@ PHP_FUNCTION(mb_convert_variables)
3515
3502
if (elist != NULL ) {
3516
3503
efree ((void * )elist );
3517
3504
}
3518
- php_error_docref (NULL , E_WARNING , "Cannot handle recursive references" );
3519
- RETURN_FALSE ;
3505
+ zend_throw_error (NULL , "Cannot handle recursive references" );
3506
+ return ;
3520
3507
}
3521
3508
}
3522
3509
3523
3510
if (!from_encoding ) {
3524
- php_error_docref (NULL , E_WARNING , "Unable to detect encoding" );
3525
- from_encoding = & mbfl_encoding_pass ;
3511
+ zend_throw_error (NULL , "Unable to detect encoding" );
3512
+ return ;
3526
3513
}
3527
3514
}
3528
3515
if (elist != NULL ) {
@@ -3533,8 +3520,8 @@ PHP_FUNCTION(mb_convert_variables)
3533
3520
if (from_encoding != & mbfl_encoding_pass ) {
3534
3521
convd = mbfl_buffer_converter_new (from_encoding , to_encoding , 0 );
3535
3522
if (convd == NULL ) {
3536
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
3537
- RETURN_FALSE ;
3523
+ zend_throw_error (NULL , "Unable to create converter" );
3524
+ return ;
3538
3525
}
3539
3526
mbfl_buffer_converter_illegal_mode (convd , MBSTRG (current_filter_illegal_mode ));
3540
3527
mbfl_buffer_converter_illegal_substchar (convd , MBSTRG (current_filter_illegal_substchar ));
@@ -3558,8 +3545,8 @@ PHP_FUNCTION(mb_convert_variables)
3558
3545
mbfl_buffer_converter_delete (convd );
3559
3546
3560
3547
if (recursion_error ) {
3561
- php_error_docref (NULL , E_WARNING , "Cannot handle recursive references" );
3562
- RETURN_FALSE ;
3548
+ zend_throw_error (NULL , "Cannot handle recursive references" );
3549
+ return ;
3563
3550
}
3564
3551
}
3565
3552
@@ -3913,7 +3900,7 @@ PHP_FUNCTION(mb_send_mail)
3913
3900
break ;
3914
3901
default :
3915
3902
zend_type_error ("headers parameter must be string or array" );
3916
- return ;
3903
+ RETURN_THROWS () ;
3917
3904
}
3918
3905
}
3919
3906
if (extra_cmd ) {
@@ -3951,8 +3938,8 @@ PHP_FUNCTION(mb_send_mail)
3951
3938
}
3952
3939
3953
3940
if (!_tran_cs ) {
3954
- php_error_docref (NULL , E_WARNING , "Unsupported charset \"%s\" - will be regarded as ascii" , charset );
3955
- _tran_cs = & mbfl_encoding_ascii ;
3941
+ zend_throw_error (NULL , "Unsupported charset \"%s\" - will be regarded as ascii" , charset );
3942
+ RETURN_THROWS () ;
3956
3943
}
3957
3944
tran_cs = _tran_cs ;
3958
3945
}
@@ -3975,9 +3962,8 @@ PHP_FUNCTION(mb_send_mail)
3975
3962
break ;
3976
3963
3977
3964
default :
3978
- php_error_docref (NULL , E_WARNING , "Unsupported transfer encoding \"%s\" - will be regarded as 8bit" , Z_STRVAL_P (s ));
3979
- body_enc = & mbfl_encoding_8bit ;
3980
- break ;
3965
+ zend_throw_error (NULL , "Unsupported transfer encoding \"%s\" - will be regarded as 8bit" , Z_STRVAL_P (s ));
3966
+ RETURN_THROWS ();
3981
3967
}
3982
3968
suppressed_hdrs .cnt_trans_enc = 1 ;
3983
3969
}
@@ -4336,7 +4322,7 @@ MBSTRING_API int php_mb_check_encoding(const char *input, size_t length, const c
4336
4322
4337
4323
convd = php_mb_init_convd (encoding );
4338
4324
if (convd == NULL ) {
4339
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
4325
+ zend_throw_error (NULL , "Unable to create converter" );
4340
4326
return 0 ;
4341
4327
}
4342
4328
@@ -4370,13 +4356,13 @@ MBSTRING_API int php_mb_check_encoding_recursive(HashTable *vars, const zend_str
4370
4356
4371
4357
convd = php_mb_init_convd (encoding );
4372
4358
if (convd == NULL ) {
4373
- php_error_docref (NULL , E_WARNING , "Unable to create converter" );
4359
+ zend_throw_error (NULL , "Unable to create converter" );
4374
4360
return 0 ;
4375
4361
}
4376
4362
4377
4363
if (GC_IS_RECURSIVE (vars )) {
4378
4364
mbfl_buffer_converter_delete (convd );
4379
- php_error_docref (NULL , E_WARNING , "Cannot not handle circular references" );
4365
+ zend_throw_error (NULL , "Cannot not handle circular references" );
4380
4366
return 0 ;
4381
4367
}
4382
4368
GC_TRY_PROTECT_RECURSION (vars );
@@ -4486,7 +4472,7 @@ static inline zend_long php_mb_ord(const char *str, size_t str_len, zend_string
4486
4472
enc , & mbfl_encoding_wchar ,
4487
4473
mbfl_wchar_device_output , 0 , & dev );
4488
4474
if (!filter ) {
4489
- php_error_docref (NULL , E_WARNING , "Creation of filter failed" );
4475
+ zend_throw_error (NULL , "Creation of filter failed" );
4490
4476
return -1 ;
4491
4477
}
4492
4478
0 commit comments