Add exceptions for utext, unormalization, uscript and unumsys 88/229388/3
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 31 Mar 2020 06:21:54 +0000 (15:21 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 2 Apr 2020 04:27:34 +0000 (13:27 +0900)
Change-Id: I9ea98b6506a42dfec6efb43ff56bba65f9eaad3e
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
src/utils_i18n_unormalization.c
src/utils_i18n_unumsys.c
src/utils_i18n_uscript.c
src/utils_i18n_utext.c

index cf73822..94cbdea 100644 (file)
@@ -46,6 +46,8 @@ int i18n_unormalization_normalize(i18n_unormalizer_h normalizer, const i18n_ucha
 
 int i18n_unormalization_get_nfc_instance(i18n_unormalizer_h* normalizer)
 {
+       retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -58,6 +60,8 @@ int i18n_unormalization_get_nfc_instance(i18n_unormalizer_h* normalizer)
 
 int i18n_unormalization_get_nfd_instance(i18n_unormalizer_h* normalizer)
 {
+       retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -70,6 +74,8 @@ int i18n_unormalization_get_nfd_instance(i18n_unormalizer_h* normalizer)
 
 int i18n_unormalization_get_nfkc_instance(i18n_unormalizer_h* normalizer)
 {
+       retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -82,6 +88,8 @@ int i18n_unormalization_get_nfkc_instance(i18n_unormalizer_h* normalizer)
 
 int i18n_unormalization_get_nfkd_instance(i18n_unormalizer_h* normalizer)
 {
+       retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -94,6 +102,8 @@ int i18n_unormalization_get_nfkd_instance(i18n_unormalizer_h* normalizer)
 
 int i18n_unormalization_get_nfkc_casefold_instance(i18n_unormalizer_h* normalizer)
 {
+       retv_if(normalizer == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -107,6 +117,8 @@ int i18n_unormalization_get_nfkc_casefold_instance(i18n_unormalizer_h* normalize
 
 int i18n_unormalization_create_filtered(i18n_unormalizer_h normalizer, const i18n_uset_h *filter_set, i18n_unormalizer_h *normalizer2)
 {
+       retv_if(normalizer == NULL || normalizer2 == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
index 9e1d9ec..d48e11c 100644 (file)
@@ -50,6 +50,8 @@ void i18n_unumsys_destroy(i18n_unumsys_h unumsys)
 
 int i18n_unumsys_get_available_names(i18n_uenumeration_h *uenum)
 {
+       retv_if(uenum == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
index 31542b0..a83408a 100644 (file)
@@ -21,6 +21,8 @@
 
 int i18n_uscript_get_codes(const char* language, i18n_uscript_code_e* codes, int32_t capacity, int32_t *length)
 {
+       retv_if(length == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -55,6 +57,8 @@ const char *i18n_uscript_get_short_name(i18n_uscript_code_e script_code)
 
 int i18n_uscript_get_script(i18n_uchar32 codepoint, i18n_uscript_code_e *script_code)
 {
+       retv_if(script_code == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -79,6 +83,8 @@ i18n_ubool i18n_uscript_has_script(i18n_uchar32 codepoint, i18n_uscript_code_e s
 
 int i18n_uscript_get_script_extensions(i18n_uchar32 codepoint, i18n_uscript_code_e *scripts, int32_t capacity, int32_t *length)
 {
+       retv_if(length == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -91,7 +97,8 @@ int i18n_uscript_get_script_extensions(i18n_uchar32 codepoint, i18n_uscript_code
 
 int i18n_uscript_get_sample_string(i18n_uscript_code_e script, i18n_uchar *sample, int32_t capacity, int32_t *length)
 {
-       retv_if(script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE, I18N_USCRIPT_INVALID_CODE);
+       retv_if(length == NULL ||
+                       script >= I18N_USCRIPT_CODE_LIMIT || script <= I18N_USCRIPT_INVALID_CODE, I18N_USCRIPT_INVALID_CODE);
 
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
index 4abc74f..1cf801c 100644 (file)
@@ -27,6 +27,8 @@ void i18n_utext_destroy(i18n_utext_h ut)
 
 int i18n_utext_create_for_UTF8(i18n_utext_h uta, const char *s, int64_t length, i18n_utext_h *utb)
 {
+       retv_if(utb == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -39,6 +41,8 @@ int i18n_utext_create_for_UTF8(i18n_utext_h uta, const char *s, int64_t length,
 
 int i18n_utext_create_for_uchars(i18n_utext_h uta, const i18n_uchar *s, int64_t length, i18n_utext_h *utb)
 {
+       retv_if(utb == NULL, I18N_ERROR_INVALID_PARAMETER);
+
        i18n_error_code_e i18n_error;
        UErrorCode icu_error = U_ZERO_ERROR;
 
@@ -65,6 +69,12 @@ int i18n_utext_clone(i18n_utext_h dest, const i18n_utext_h src, i18n_ubool deep,
 
 i18n_ubool i18n_utext_equals(const i18n_utext_h a, const i18n_utext_h b)
 {
+       if(a == NULL || b == NULL) {
+               set_last_result(I18N_ERROR_INVALID_PARAMETER);
+               return false;
+       }
+
+       set_last_result(I18N_ERROR_NONE);
        return utext_equals((UText *)a, (UText *)b);
 }