@@ -980,8 +980,8 @@ PHP_FUNCTION(grapheme_levenshtein)
980
980
intl_error_set_code (NULL , ustatus );
981
981
982
982
intl_error_set_custom_msg (NULL , "Error converting input string to UTF-16" , 0 );
983
- efree ( ustring1 ) ;
984
- RETURN_FALSE ;
983
+ RETVAL_FALSE ;
984
+ goto out_ustring1 ;
985
985
}
986
986
987
987
intl_convert_utf8_to_utf16 (& ustring2 , & ustring2_len , pstr2 , ZSTR_LEN (string2 ), & ustatus );
@@ -990,9 +990,8 @@ PHP_FUNCTION(grapheme_levenshtein)
990
990
intl_error_set_code (NULL , ustatus );
991
991
992
992
intl_error_set_custom_msg (NULL , "Error converting input string to UTF-16" , 0 );
993
- efree (ustring2 );
994
- efree (ustring1 );
995
- RETURN_FALSE ;
993
+ RETVAL_FALSE ;
994
+ goto out_ustring2 ;
996
995
}
997
996
998
997
UBreakIterator * bi1 , * bi2 ;
@@ -1002,14 +1001,12 @@ PHP_FUNCTION(grapheme_levenshtein)
1002
1001
strlen_2 = grapheme_split_string (ustring2 , ustring2_len , NULL , 0 );
1003
1002
1004
1003
if (strlen_1 == 0 ) {
1005
- efree (ustring1 );
1006
- efree (ustring2 );
1007
- RETURN_LONG (strlen_2 * cost_ins );
1004
+ RETVAL_LONG (strlen_2 * cost_ins );
1005
+ goto out_ustring2 ;
1008
1006
}
1009
1007
if (strlen_2 == 0 ) {
1010
- efree (ustring1 );
1011
- efree (ustring2 );
1012
- RETURN_LONG (strlen_1 * cost_del );
1008
+ RETVAL_LONG (strlen_1 * cost_del );
1009
+ goto out_ustring2 ;
1013
1010
}
1014
1011
1015
1012
unsigned char u_break_iterator_buffer1 [U_BRK_SAFECLONE_BUFFERSIZE ];
@@ -1018,57 +1015,42 @@ PHP_FUNCTION(grapheme_levenshtein)
1018
1015
if (U_FAILURE (ustatus )) {
1019
1016
intl_error_set_code (NULL , ustatus );
1020
1017
intl_error_set_custom_msg (NULL , "Error on grapheme_get_break_iterator for argument #1 ($string1)" , 0 );
1021
- efree (ustring2 );
1022
- efree (ustring1 );
1023
- ubrk_close (bi1 );
1024
- RETURN_FALSE ;
1018
+ RETVAL_FALSE ;
1019
+ goto out_bi1 ;
1025
1020
}
1026
1021
1027
1022
bi2 = grapheme_get_break_iterator (u_break_iterator_buffer2 , & ustatus );
1028
1023
if (U_FAILURE (ustatus )) {
1029
1024
intl_error_set_code (NULL , ustatus );
1030
1025
intl_error_set_custom_msg (NULL , "Error on grapheme_get_break_iterator for argument #2 ($string2)" , 0 );
1031
- efree (ustring2 );
1032
- efree (ustring1 );
1033
- ubrk_close (bi2 );
1034
- ubrk_close (bi1 );
1035
- RETURN_FALSE ;
1026
+ RETVAL_FALSE ;
1027
+ goto out_bi2 ;
1036
1028
}
1037
- ubrk_setText (bi1 , ustring1 , ustring1_len , & ustatus );
1038
1029
1030
+ ubrk_setText (bi1 , ustring1 , ustring1_len , & ustatus );
1039
1031
if (U_FAILURE (ustatus )) {
1040
1032
intl_error_set_code (NULL , ustatus );
1041
1033
1042
1034
intl_error_set_custom_msg (NULL , "Error on ubrk_setText for argument #1 ($string1)" , 0 );
1043
- efree (ustring2 );
1044
- efree (ustring1 );
1045
- ubrk_close (bi2 );
1046
- ubrk_close (bi1 );
1047
- RETURN_FALSE ;
1035
+ RETVAL_FALSE ;
1036
+ goto out_bi2 ;
1048
1037
}
1049
1038
1050
1039
ubrk_setText (bi2 , ustring2 , ustring2_len , & ustatus );
1051
1040
if (U_FAILURE (ustatus )) {
1052
1041
intl_error_set_code (NULL , ustatus );
1053
1042
1054
1043
intl_error_set_custom_msg (NULL , "Error on ubrk_setText for argument #2 ($string2)" , 0 );
1055
- efree (ustring2 );
1056
- efree (ustring1 );
1057
- ubrk_close (bi2 );
1058
- ubrk_close (bi1 );
1059
- RETURN_FALSE ;
1044
+ RETVAL_FALSE ;
1045
+ goto out_bi2 ;
1060
1046
}
1061
1047
UCollator * collator = ucol_open ("" , & ustatus );
1062
1048
if (U_FAILURE (ustatus )) {
1063
1049
intl_error_set_code (NULL , ustatus );
1064
1050
1065
1051
intl_error_set_custom_msg (NULL , "Error on ucol_open" , 0 );
1066
- efree (ustring2 );
1067
- efree (ustring1 );
1068
- ubrk_close (bi2 );
1069
- ubrk_close (bi1 );
1070
- ucol_close (collator );
1071
- RETURN_FALSE ;
1052
+ RETVAL_FALSE ;
1053
+ goto out_collator ;
1072
1054
}
1073
1055
1074
1056
zend_long * p1 , * p2 , * tmp ;
@@ -1118,19 +1100,22 @@ PHP_FUNCTION(grapheme_levenshtein)
1118
1100
p2 = tmp ;
1119
1101
}
1120
1102
1121
- ucol_close (collator );
1122
-
1123
- ubrk_close (bi1 );
1124
- ubrk_close (bi2 );
1125
-
1126
- efree (ustring1 );
1127
- efree (ustring2 );
1128
-
1129
1103
retval = p1 [strlen_2 ];
1104
+ RETVAL_LONG (retval );
1130
1105
1131
- efree (p1 );
1132
1106
efree (p2 );
1133
- RETURN_LONG (retval );
1107
+ efree (p1 );
1108
+
1109
+ out_collator :
1110
+ ucol_close (collator );
1111
+ out_bi2 :
1112
+ ubrk_close (bi2 );
1113
+ out_bi1 :
1114
+ ubrk_close (bi1 );
1115
+ out_ustring2 :
1116
+ efree (ustring2 );
1117
+ out_ustring1 :
1118
+ efree (ustring1 );
1134
1119
}
1135
1120
1136
1121
/* }}} */
0 commit comments