From 88ebef67f210411ab1314876c0d07bc56c6bbdfd Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 27 Jun 2022 15:45:41 +0900 Subject: [PATCH] Reduce duplicate code to check validation of IME index Change-Id: Ic9ee12390e01ca3d5b418077d76c8b35b795fd54 Signed-off-by: Jihoon Kim --- .../input_method_setting_list_popup_view.cpp | 16 ++++-- .../input_method_setting_list_ui.cpp | 57 ++++++++----------- 2 files changed, 35 insertions(+), 38 deletions(-) diff --git a/im_setting_list/input_method_setting_list_popup_view.cpp b/im_setting_list/input_method_setting_list_popup_view.cpp index 3cc1bed..c229ce4 100644 --- a/im_setting_list/input_method_setting_list_popup_view.cpp +++ b/im_setting_list/input_method_setting_list_popup_view.cpp @@ -36,13 +36,21 @@ static int g_active_ime_id = -1; static int selected_index = 0; -static void im_setting_list_update_radio_state(Elm_Object_Item *item, Evas_Object *obj, int index) +static bool CHECK_IME_INDEX(int index) { if (index < 0 || index >= (int)g_active_ime_info_list.size()) { LOGW("Wrong value. index : %d, g_active_ime_info_list.size() : %zu\n", index, g_active_ime_info_list.size()); - return; + return false; } + return true; +} + +static void im_setting_list_update_radio_state(Elm_Object_Item *item, Evas_Object *obj, int index) +{ + if (!CHECK_IME_INDEX(index)) + return; + if (item && obj) { elm_genlist_item_selected_set(item, EINA_FALSE); /* Update radio button */ @@ -133,10 +141,8 @@ static char *im_setting_list_genlist_item_label_get(void *data, Evas_Object *obj return NULL; int index = cb_data->index; - if (index < 0 || index >= (int)g_active_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_active_ime_info_list.size() : %zu\n", index, g_active_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return NULL; - } if (!strcmp(part, "elm.text") || !strcmp(part, "elm.text.main") || diff --git a/im_setting_list/input_method_setting_list_ui.cpp b/im_setting_list/input_method_setting_list_ui.cpp index 30cab7d..4ddaecb 100644 --- a/im_setting_list/input_method_setting_list_ui.cpp +++ b/im_setting_list/input_method_setting_list_ui.cpp @@ -89,6 +89,16 @@ static package_manager_h pkgmgr = NULL; void im_setting_list_update_window(void *data); +static bool CHECK_IME_INDEX(int index) +{ + if (index < 0 || index >= (int)g_ime_info_list.size()) { + LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + return false; + } + + return true; +} + static void im_setting_list_text_domain_set(void) { bindtextdomain(IM_SETTING_LIST_PACKAGE, IM_SETTING_LIST_LOCALE_DIR); @@ -147,10 +157,9 @@ im_setting_list_check_popup_ok_cb(void *data, Evas_Object *obj, void *event_info if (!cb_data) return; int index = (int)reinterpret_cast(cb_data->data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } + Eina_Bool state = EINA_FALSE; state = g_gen_item_data[index].chk_status; if (isf_control_set_enable_ime(g_ime_info_list[index].appid, state) != 0) @@ -165,11 +174,10 @@ im_setting_list_check_popup_cancel_cb(void *data, Evas_Object *obj, void *event_ popup_cb_data *cb_data = (popup_cb_data *)data; if (!cb_data) return; + int index = (int)reinterpret_cast(cb_data->data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } Eina_Bool state = g_gen_item_data[index].chk_status; if (isf_control_set_enable_ime(g_ime_info_list[index].appid, !state) == 0) { @@ -189,10 +197,8 @@ static void _popup_back_cb(void *data, Evas_Object *obj, void *event_info) if (!cb_data) return; int index = (int)reinterpret_cast(cb_data->data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } if (g_gen_item_data[index].chk_status) { im_setting_list_check_popup_cancel_cb(data, NULL, NULL); @@ -217,10 +223,8 @@ static void _active_keyboard_changed_cb(keynode_t* node, void* data) if (g_active_ime_index != active_ime_index) { g_active_ime_index = active_ime_index; - if (g_active_ime_index < 0 || g_active_ime_index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. g_active_ime_index : %d, g_ime_info_list.size() : %zu\n", g_active_ime_index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(g_active_ime_index)) return; - } /* Default keyboard selector */ snprintf(item_text[0].main_text, sizeof(item_text[0].main_text), "%s", IM_SETTING_LIST_DEFAULT_KEYBOARD); @@ -272,10 +276,8 @@ static void add_popup_button(Evas_Object *popup, const char *button_text, const static void im_setting_list_show_popup(void *data, Evas_Object *obj, popup_ok_cb ime_setting_list_ok_callback, popup_cancel_cb ime_setting_list_cancel_callback) { int index = (int)reinterpret_cast(data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } Evas_Object *top_widget = elm_object_top_widget_get(obj); Evas_Object *popup = elm_popup_add(top_widget); @@ -301,10 +303,8 @@ static void im_setting_list_check_button_change_cb(void *data, Evas_Object *obj, { /*save the checked ime*/ int index = (int)reinterpret_cast(data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } Eina_Bool state = g_gen_item_data[index].chk_status; @@ -322,11 +322,10 @@ im_setting_list_popup_ok_cb(void *data, Evas_Object *obj, void *event_info) popup_cb_data *cb_data = (popup_cb_data *)data; if (!cb_data) return; + int index = (int)reinterpret_cast(cb_data->data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } Eina_Bool state = g_gen_item_data[index].chk_status; if (isf_control_set_enable_ime(g_ime_info_list[index].appid, !state) == 0) { @@ -361,10 +360,8 @@ static void im_setting_list_item_sel_cb(void *data, Evas_Object *obj, void *even elm_genlist_item_selected_set(item, EINA_FALSE); int index = (int)reinterpret_cast(data); - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return; - } if (g_ime_info_list[index].is_preinstalled || (index == g_active_ime_index)) { @@ -473,10 +470,8 @@ static char *im_setting_list_genlist_keyboard_list_item_label_get(void *data, Ev { Item_Data *id = (Item_Data *)data; int index = id->index; - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return NULL; - } if (!strcmp(part, "elm.text.main.left.top") || !strcmp(part, "elm.text.main.left") || @@ -503,10 +498,8 @@ static Evas_Object *im_setting_list_genlist_keyboard_list_item_icon_get(void *da Item_Data *id = (Item_Data *)data; int index = id->index; - if (index < 0 || index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. index : %d, g_ime_info_list.size() : %zu\n", index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(index)) return NULL; - } if (!strcmp(part, "elm.swallow.end") || !strcmp(part, "elm.icon")) { @@ -671,10 +664,8 @@ static void im_setting_list_add_ime(void *data) { } g_active_ime_index = im_setting_list_get_active_ime_index(); - if (g_active_ime_index < 0 || g_active_ime_index >= (int)g_ime_info_list.size()) { - LOGW("Wrong value. g_active_ime_index : %d, g_ime_info_list.size() : %zu\n", g_active_ime_index, g_ime_info_list.size()); + if (!CHECK_IME_INDEX(g_active_ime_index)) return; - } #ifdef _WEARABLE /* Add scrollable title area in wearable profile */ -- 2.34.1