From ff1d4414776f1417099329c70b4b9d765b5bf45f Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Fri, 12 Jan 2018 22:02:33 +0900 Subject: [PATCH 01/16] Remove hash table when recognition start Change-Id: I0f1a046658c94ad1229f9030e9567b2933df6577 Signed-off-by: Wonnam Jang (cherry picked from commit 1359e0d28dc9a2abe26f33cb7f242114d686e83e) --- src/vc_elm.c | 22 ++++++++++ src/vc_elm_core.c | 90 +++++++++++++++++++++++++++++++-------- src/vc_elm_core_default_widgets.c | 7 ++- src/vc_elm_efl_dump.h | 4 +- 4 files changed, 102 insertions(+), 21 deletions(-) diff --git a/src/vc_elm.c b/src/vc_elm.c index ecddc88..4f883cf 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -407,6 +407,8 @@ int vc_elm_get_action_command(const char *action, char **command) return VC_ELM_ERROR_OPERATION_FAILED; } memcpy(*command, command_name, len); + + VC_ELM_LOG_INFO("[SUCCESS] get action command, action(%s), command(%s)", action, *command); return VC_ELM_ERROR_NONE; } @@ -447,6 +449,8 @@ int vc_elm_create_object(Evas_Object *object, vc_elm_h *vc_elm) handler->data = (void *)object; g_handlers_list = eina_list_append(g_handlers_list, handler); *vc_elm = (vc_elm_h)handler; + + VC_ELM_LOG_INFO("[SUCCESS] create object(%s)", _get_ui_object_name(object)); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_NONE; } @@ -484,6 +488,8 @@ int vc_elm_create_item(Elm_Object_Item *item, vc_elm_h *vc_elm) handler->data = (void *)item; g_handlers_list = eina_list_append(g_handlers_list, handler); *vc_elm = (vc_elm_h)handler; + + VC_ELM_LOG_INFO("[SUCCESS] create item object)"); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_NONE; } @@ -519,6 +525,8 @@ int vc_elm_destroy(vc_elm_h vc_elm) g_handlers_list = eina_list_remove_list(g_handlers_list, list); free(handler); handler = NULL; + + VC_ELM_LOG_INFO("[SUCCESS] destroy"); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_NONE; } @@ -546,6 +554,8 @@ int vc_elm_set_command(vc_elm_h vc_elm, const char *command) Elm_Object_Item *it = (Elm_Object_Item *)handler->data; return _vc_elm_set_item_object_command(it, command); } + + VC_ELM_LOG_INFO("[SUCCESS] set command(%s)", command); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -573,6 +583,8 @@ int vc_elm_unset_command(vc_elm_h vc_elm) Elm_Object_Item *it = (Elm_Object_Item *)handler->data; return _vc_elm_unset_item_object_command(it); } + + VC_ELM_LOG_INFO("[SUCCESS] unset command"); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -600,6 +612,8 @@ int vc_elm_set_command_hint(vc_elm_h vc_elm, const char* hint) Elm_Object_Item *it = (Elm_Object_Item *)handler->data; return _vc_elm_set_item_object_hint(it, hint); } + + VC_ELM_LOG_INFO("[SUCCESS] set hint(%s)", hint); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -627,6 +641,8 @@ int vc_elm_unset_command_hint(vc_elm_h vc_elm) Elm_Object_Item *it = (Elm_Object_Item *)handler->data; return _vc_elm_unset_item_object_hint(it); } + + VC_ELM_LOG_INFO("[SUCCESS] unset hint"); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -655,6 +671,8 @@ int vc_elm_set_command_hint_direction(vc_elm_h vc_elm, vc_elm_direction_e direct Evas_Object *parent = elm_object_item_widget_get(it); return _vc_elm_set_sub_item_hint_direction(parent, direction); } + + VC_ELM_LOG_INFO("[SUCCESS] set hint direction(%d)", direction); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -683,6 +701,8 @@ int vc_elm_get_command_hint_direction(vc_elm_h vc_elm, vc_elm_direction_e *direc Evas_Object *parent = elm_object_item_widget_get(it); return _vc_elm_get_sub_item_hint_direction(parent, direction); } + + VC_ELM_LOG_INFO("[SUCCESS] get hint direction(%d)", *direction); return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -709,6 +729,8 @@ int vc_elm_set_command_hint_offset(vc_elm_h vc_elm, int pos_x, int pos_y) Elm_Object_Item *it = (Elm_Object_Item *)handler->data; return _vc_elm_set_item_object_custom_hint(it, NULL, pos_x, pos_y); } + + VC_ELM_LOG_INFO("[SUCCESS] set hint offset, x(%d), y(%d)", pos_x, pos_y); _vc_elm_core_set_view_changed(); return VC_ELM_ERROR_INVALID_PARAMETER; } diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index be33e73..2e37c30 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -507,14 +507,14 @@ Eina_Bool _recognize_command(const char *cmd, const char *param1, const char *pa return EINA_FALSE; } - VC_ELM_LOG_DBG("command(%s)", temp); + VC_ELM_LOG_DBG("found evas_object(%p), command(%s)", found->obj, temp); const char* action = NULL; if (strlen(cmd) > strlen(temp)) { action = &cmd[strlen(temp) + 1]; VC_ELM_LOG_DBG("action(%s)", &cmd[strlen(temp) + 1]); } found->cmd = temp; - VC_ELM_LOG_DBG("unwrapping %s %s for %s", param1, param2, _get_ui_object_name(found->obj)); + VC_ELM_LOG_DBG("unwrapping %s %s for %s(%s)", param1, param2, _get_ui_object_name(found->obj), evas_object_type_get(found->obj)); found->unwrap_callback(found, action, param2); return EINA_TRUE; @@ -587,6 +587,51 @@ static Eina_Bool __idle_enter(void *data); */ /*static Eina_Bool _delayed_window_load(void *data);*/ +void _vc_elm_core_init_cmd_hash() +{ + if (!item_hint_map) + item_hint_map = eina_hash_pointer_new(__hash_entry_free_cb); + if (!item_command_map) + item_command_map = eina_hash_pointer_new(__hash_entry_free_cb); + if (!item_custom_map) + item_custom_map = eina_hash_pointer_new(__hash_entry_free_cb); + if (!command_item_map) + command_item_map = eina_hash_string_superfast_new(__hash_entry_free_cb); + + VC_ELM_LOG_DBG("############## COMMAND HASH INIT ##############"); +} + + + +void _vc_elm_core_deinit_cmd_hash() +{ + if (item_hint_map && 0 != eina_hash_population(item_hint_map)) { + VC_ELM_LOG_DBG("item_hint_map HASH FREE"); + eina_hash_free_cb_set(item_hint_map, __hash_entry_dummy_cb); + eina_hash_free(item_hint_map); + item_hint_map = NULL; + } + if (item_command_map && 0 != eina_hash_population(item_command_map)) { + VC_ELM_LOG_DBG("item_command_map HASH FREE"); + eina_hash_free_cb_set(item_command_map, __hash_entry_dummy_cb); + eina_hash_free(item_command_map); + item_command_map = NULL; + } + if (item_custom_map && 0 != eina_hash_population(item_custom_map)) { + VC_ELM_LOG_DBG("item_custom_map HASH FREE"); + eina_hash_free_cb_set(item_custom_map, __hash_entry_dummy_cb); + eina_hash_free(item_custom_map); + item_custom_map = NULL; + } + if (command_item_map && 0 != eina_hash_population(command_item_map)) { + VC_ELM_LOG_DBG("eina_hash_free HASH FREE"); + eina_hash_free_cb_set(command_item_map, __hash_entry_dummy_cb); + eina_hash_free(command_item_map); + command_item_map = NULL; + } + VC_ELM_LOG_DBG("############## COMMAND HASH DEINIT ##############"); +} + void _vc_elm_core_init() { int ret; @@ -595,15 +640,12 @@ void _vc_elm_core_init() // bindtextdomain("voice-control-elm", "/usr/share/locale/"); g_widget_info_hash = eina_hash_string_djb2_new(__widget_info_free_cb); - item_hint_map = eina_hash_pointer_new(__hash_entry_free_cb); - item_command_map = eina_hash_pointer_new(__hash_entry_free_cb); - item_custom_map = eina_hash_pointer_new(__hash_entry_free_cb); - command_item_map = eina_hash_string_superfast_new(__hash_entry_free_cb); registered_item_map = eina_hash_string_superfast_new(__hash_entry_free_cb); g_config_action_map = eina_hash_string_superfast_new(__hash_entry_stringshare_free_cb); g_config_widget_map = eina_hash_string_superfast_new(__hash_entry_eina_list_free_cb); + _vc_elm_core_init_cmd_hash(); if (NULL == g_allowed_text_part_list) { g_allowed_text_part_list = eina_list_append(g_allowed_text_part_list, strdup("elm.text")); @@ -710,6 +752,7 @@ static Eina_List *__get_objects_of_visible_items(Evas_Object *parent, Elm_Object if (item_hint != NULL) evas_object_data_set(obj, VC_ELM_HINT_DATA_KEY, item_hint); evas_object_data_set(obj, VC_ELM_CMD_DATA_KEY, item_command); + VC_ELM_LOG_DBG("set CMD_DATA_KEY : object_item(%p), item_command(%s)", (void*)item, item_command); } item_custom_date = eina_hash_find(item_custom_map, &item); @@ -875,7 +918,7 @@ static void __elm_widget_foreach_in_tree(Evas_Object *widget, Eina_Bool(*cb)(Eva { Eina_Bool visible = evas_object_visible_get(widget); - VC_ELM_LOG_DBG("IS visible %s %d", _get_ui_object_name(widget), visible); + VC_ELM_LOG_DBG("IS visible (%p)(%s)(%s), visible(%d)", widget, _get_ui_object_name(widget), evas_object_type_get(widget), visible); if (visible) { Eina_List *list = NULL; const Eina_List *constant_list = NULL; @@ -897,6 +940,7 @@ static void __elm_widget_foreach_in_tree(Evas_Object *widget, Eina_Bool(*cb)(Eva cb(widget, data); if (NULL != (info = eina_hash_find(g_widget_info_hash, obj_name)) && obj_name != NULL && NULL != info->get_subobjects_func) { + VC_ELM_LOG_DBG("call subobjects_func, constant_list(%d)", eina_list_count(list)); constant_list = info->get_subobjects_func(widget, info->user_data); } else if (obj_name != NULL && (!strcmp("Elm_Button", obj_name) || !strcmp("Elm_Index", obj_name))) { /* We dont want to have a tooltip for elm_icon on button */ @@ -959,17 +1003,19 @@ static void __elm_widget_foreach_in_tree(Evas_Object *widget, Eina_Bool(*cb)(Eva constant_list = elm_widget_can_focus_child_list_get(widget); } + VC_ELM_LOG_DBG("list (%d) constant_list(%d)", eina_list_count(list), eina_list_count(constant_list)); if (list) constant_list = list; EINA_LIST_FOREACH(constant_list, l, obj) { const char *current_name = _get_ui_object_name(obj); - VC_ELM_LOG_DBG("calling %p %s", (void*)obj, current_name); + VC_ELM_LOG_DBG("calling evas_object(%p)[%s], focused(%d)", (void*)obj, current_name, elm_object_focus_get(obj)); - if ((current_name != NULL) && ((0 == strcmp(current_name, "Elm_Inwin")) || (0 == strcmp(current_name, "Elm_Popup")) || ((0 == strcmp(current_name, "Elm_Ctxpopup") && (evas_object_visible_get(obj)))))) { - /*overlaying widget found, remove other widgets found, - traverse it's subtree and return*/ + if ((current_name != NULL) && ((0 == strcmp(current_name, "Elm_Inwin")) + || (((0 == strcmp(current_name, "Elm_Popup")) || (0 == strcmp(current_name, "Elm_Ctxpopup"))) + && (evas_object_visible_get(obj)) && (EINA_TRUE == elm_object_focus_get(obj))))) { + /*overlaying widget found, remove other widgets found, traverse it's subtree and return*/ VC_ELM_LOG_INFO("overlaying widget: found"); if (data && (*data)) { @@ -979,7 +1025,7 @@ static void __elm_widget_foreach_in_tree(Evas_Object *widget, Eina_Bool(*cb)(Eva __elm_widget_foreach_in_tree(obj, cb, data); - VC_ELM_LOG_INFO("overlaying widget: subtree finished"); + VC_ELM_LOG_INFO("overlaying widget: subtree finished, list(%d)", (data && (*data)) ? eina_list_count(*data) : 0); return; } else { /*continue traversing other subtrees*/ @@ -1099,6 +1145,11 @@ void _show_tooltips() Evas_Coord w_p; Evas_Coord h_p; + VC_ELM_LOG_DBG("show_tooltips"); + + _vc_elm_core_deinit_cmd_hash(); + _vc_elm_core_init_cmd_hash(); + __idle_enter(NULL); VC_ELM_LOG_DBG("show_tooltips"); @@ -1394,7 +1445,7 @@ static void __vc_add_commands() obj_name = eina_stringshare_add(obj_name); - VC_ELM_LOG_DBG("obj(%p), command %s", (void*)obj, evas_object_data_get(obj, VC_ELM_CMD_DATA_KEY)); + VC_ELM_LOG_DBG("evas_obj(%p), command %s", (void*)obj, evas_object_data_get(obj, VC_ELM_CMD_DATA_KEY)); if (obj_name) VC_ELM_LOG_DBG("Adding command for %s", obj_name); if ((!obj_name && evas_object_data_get(obj, "special_item")) || (obj_name && (!strcmp(obj_name, "Elm_Layout") && evas_object_data_get(obj, "special_item")))) @@ -1609,11 +1660,12 @@ static void __unwrap_universal_item_command(struct Wrapped_Command *wrapper, con unwr->wrap = wrapper; unwr->action = (action) ? strdup(action) : NULL; unwr->param = (param) ? strdup(param) : NULL; - VC_ELM_LOG_DBG("__unwrap_universal_item_command with params: %p %p %s %s", (void *)wrapper->obj, (void *)item, action, param); + VC_ELM_LOG_DBG("__unwrap_universal_item_command with params: %p %p %s %s, wrapper(%s)", (void *)wrapper->obj, (void *)item, action, param, wrapper->cmd); if (NULL != item) { parent = elm_object_parent_widget_get(_vc_elm_core_get_evas_object(item)); + VC_ELM_LOG_DBG("Parent evas_object(%s)(%s)", _get_ui_object_name(parent), evas_object_type_get(parent)); while (NULL != parent) { if (0 == strcmp(_get_ui_object_name(parent), "Elm_Genlist")) { evas_object_geometry_get(_vc_elm_core_get_evas_object(item), &x, &y, &w, &h); @@ -1690,6 +1742,8 @@ static void __item__object_del_callback(void *data, Evas_Object *obj, void *even cdata = (struct Custom_Data *)eina_hash_find(item_custom_map, &obj_item); free(cdata); + VC_ELM_LOG_DBG("object_item(%p) has been deleted, command(%s)", obj_item, command); + eina_hash_del(item_hint_map, &obj_item, NULL); eina_hash_del(item_command_map, &obj_item, NULL); eina_hash_del(item_custom_map, &obj_item, NULL); @@ -1707,7 +1761,7 @@ Eina_Bool _vc_elm_core_set_object_command(Evas_Object *obj, const char *_command evas_object_data_set(obj, VC_ELM_CMD_DATA_KEY, command); if (NULL == eina_list_data_find(ui_objects_list, obj)) ui_objects_list = eina_list_append(ui_objects_list, obj); - VC_ELM_LOG_DBG("added new item %d %p", eina_list_count(ui_objects_list), (void*)obj); + VC_ELM_LOG_DBG("added new object, num(%d), evas_object(%p)", eina_list_count(ui_objects_list), (void*)obj); evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, __object_del_callback, command); return EINA_TRUE; } @@ -1717,7 +1771,7 @@ static Eina_Bool _vc_elm_core_set_auto_object_command(Evas_Object *obj, const ch char *temp = NULL; temp = evas_object_data_get(obj, VC_ELM_CMD_DATA_KEY); if (NULL != temp) { - VC_ELM_LOG_DBG("obj(%p) already has command(%s)", (void*)obj, temp); + VC_ELM_LOG_DBG("evas_obj(%p) already has command(%s)", (void*)obj, temp); return EINA_FALSE; } @@ -1753,7 +1807,7 @@ Eina_Bool _vc_elm_core_set_item_object_command(Elm_Object_Item *obj, const char const char *command = eina_stringshare_add(_command); if (NULL == command) return EINA_FALSE; - VC_ELM_LOG_DBG("Add item object(%p) command(%s)", (void*)obj, _command); + VC_ELM_LOG_DBG("Add object_item(%p) command(%s)", (void*)obj, _command); eina_hash_add(item_command_map, &obj, command); eina_hash_add(command_item_map, command, obj); elm_object_item_del_cb_set(obj, __item__object_del_callback); @@ -1765,7 +1819,7 @@ static Eina_Bool _vc_elm_core_set_auto_item_object_command(Elm_Object_Item *obj, char *temp = NULL; temp = eina_hash_find(item_command_map, &obj); if (NULL != temp && NULL != _command && !strncmp(temp, _command, strlen(temp))) { - VC_ELM_LOG_DBG("obj item(%p) already has command(%s)", (void*)obj, temp); + VC_ELM_LOG_DBG("object_item(%p) already has command(%s)", (void*)obj, temp); return EINA_FALSE; } diff --git a/src/vc_elm_core_default_widgets.c b/src/vc_elm_core_default_widgets.c index bdd95b0..ad453d1 100644 --- a/src/vc_elm_core_default_widgets.c +++ b/src/vc_elm_core_default_widgets.c @@ -224,12 +224,12 @@ static void __vc_elm_click_by_focus(Evas_Object *obj) VC_ELM_LOG_DBG("Already focused"); ecore_timer_add(g_click_time, __click_event, NULL); } else { + VC_ELM_LOG_DBG("item will be focused, parent(%p)", parent); evas_object_smart_callback_add(parent, "item,focused", __focused_cb, "item,focused"); elm_object_item_focus_set(item, EINA_TRUE); elm_object_focus_set(parent, EINA_TRUE); } } - } } @@ -297,6 +297,8 @@ static Eina_Bool __item_filter_func(Evas_Object *obj, const char *text, void *us (void)text; (void)user_data; + VC_ELM_LOG_INFO("[Enter] evas_obj(%p)", obj); + if (NULL == obj) return EINA_TRUE; return EINA_FALSE; @@ -415,7 +417,8 @@ static Eina_Bool __gengrid_filter_func(Evas_Object *obj, const char *action, voi { int horizontal = elm_gengrid_horizontal_get(obj); (void)user_data; - VC_ELM_LOG_DBG("filtering gengrid"); + VC_ELM_LOG_INFO("[Enter] evas_obj(%p), action(%s)", obj, action); + if (NULL == action) { /* NULL means whole object */ Elm_Object_Item *first = __gengrid_filter_first_item_get(obj, NULL); Elm_Object_Item *last = __gengrid_filter_last_item_get(obj, NULL); diff --git a/src/vc_elm_efl_dump.h b/src/vc_elm_efl_dump.h index 956c05e..27ecd64 100644 --- a/src/vc_elm_efl_dump.h +++ b/src/vc_elm_efl_dump.h @@ -74,7 +74,9 @@ Eina_List *ea_object_dump_text_list_get(Eina_Bool); Eina_List *ea_object_dump_find_data(Eina_List*, const char*, const char*); Object_Info *ea_object_dump_parent_widget_data_get(const Object_Info*); void ea_object_dump_set_geometry_info(int x, int y, int w, int h); -void ea_object_dump_unset_geometry_info(); +void ea_object_dump_unset_geometry_info(void); +Eina_List* text_dump_genlist_in_ctxpopup_get(void); +void text_dump_genlist_in_ctxpopup_clear(void); #ifdef __cplusplus } -- 2.7.4 From 0f32208106088f5d6ba51441e17a5c22c312f2ad Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Tue, 20 Mar 2018 15:26:11 +0900 Subject: [PATCH 02/16] Fix build break on EFL 1.20 Change-Id: Icfda79cbc20d321b56523149cfb2fd496853af58 --- src/vc_elm_core.c | 2 +- src/vc_elm_main.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index 97d09b5..51501fe 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -741,7 +741,7 @@ void _vc_elm_core_load() Evas_Object *_vc_elm_core_get_evas_object(Elm_Object_Item *item) { Elm_Widget_Item_Data *ret; - ret = eo_data_scope_get(item, ELM_WIDGET_ITEM_CLASS); + ret = efl_data_scope_get(item, ELM_WIDGET_ITEM_CLASS); if (NULL != ret) return (Evas_Object *)(ret->view); else diff --git a/src/vc_elm_main.h b/src/vc_elm_main.h index 6f4dbae..6443ee8 100644 --- a/src/vc_elm_main.h +++ b/src/vc_elm_main.h @@ -26,6 +26,9 @@ extern "C" { #pragma GCC system_header #define _GNU_SOURCE +#define EFL_EO_API_SUPPORT +#define EFL_BETA_API_SUPPORT + #include #include #include @@ -47,7 +50,7 @@ static inline Evas_Object *__safe_efl_cast(const Evas_Object *cobj) return helper.obj; } -void *eo_data_scope_get(const Eo *obj, const Eo_Class *klass); +void *efl_data_scope_get(const Eo *obj, const Efl_Class *klass); #ifdef __cplusplus -- 2.7.4 From 98cb5eeebb2bf489037f1d48958ab0e10bba3f0a Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Wed, 21 Mar 2018 13:59:35 +0900 Subject: [PATCH 03/16] Add to check xml file access Change-Id: Ida74ea52ae94271ce930914e360b9423210283ee Signed-off-by: sooyeon.kim --- src/vc_elm_core.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index 51501fe..d46c05d 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -2310,10 +2310,15 @@ int _vc_elm_core_read_xml_data() xmlChar *key = NULL; const char * charkey; - VC_ELM_LOG_DBG("reading XML start"); - doc = xmlParseFile(VC_ELM_CONFIG_XML); - if (doc == NULL) { - VC_ELM_LOG_ERR("Failed to parse XML file, path(%s)", VC_ELM_CONFIG_XML); + if (0 == access(VC_ELM_CONFIG_XML, F_OK)) { + VC_ELM_LOG_DBG("reading XML start"); + doc = xmlParseFile(VC_ELM_CONFIG_XML); + if (doc == NULL) { + VC_ELM_LOG_ERR("Failed to parse XML file, path(%s)", VC_ELM_CONFIG_XML); + return VC_ELM_ERROR_OPERATION_FAILED; + } + } else { + VC_ELM_LOG_ERR("[ERROR] Fail to access %s", VC_ELM_CONFIG_XML); return VC_ELM_ERROR_OPERATION_FAILED; } -- 2.7.4 From 94ecb4bb48e58515c4af73cf9154dc28f87e6d8b Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Tue, 27 Mar 2018 16:51:24 +0900 Subject: [PATCH 04/16] Remove duplicated group closure Change-Id: I4af21fdfa8cd3be3a32f1aa6559401d74a29c397 Signed-off-by: Wonnam Jang --- include/voice_control_elm.h | 2 +- include/voice_control_elm_private.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/voice_control_elm.h b/include/voice_control_elm.h index e11ea7d..c5a6638 100644 --- a/include/voice_control_elm.h +++ b/include/voice_control_elm.h @@ -565,7 +565,7 @@ int vc_elm_unset_current_language_changed_cb(void); /** - * @}@} + * @} */ diff --git a/include/voice_control_elm_private.h b/include/voice_control_elm_private.h index e9d680a..4559023 100644 --- a/include/voice_control_elm_private.h +++ b/include/voice_control_elm_private.h @@ -123,7 +123,7 @@ int vc_elm_is_supported_vt_auto(int* is_vt_automode); #endif /** - * @}@} + * @} */ #endif /* VOICE_CONTROL_ELEMENTARY_PRIVATE_H_ */ -- 2.7.4 From ce51f889b86540cb7cd8e2b592022ca9db0dcc78 Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Thu, 12 Apr 2018 20:28:21 +0900 Subject: [PATCH 05/16] Correct to check return of fread Change-Id: Ie3e23db19d239d32074d4591ba0666c43aab20f8 Signed-off-by: Wonnam Jang --- src/vc_elm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/vc_elm.c b/src/vc_elm.c index 4f883cf..231e0d0 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -121,15 +121,16 @@ static int __check_privilege_initialize() static int __check_privilege(const char* uid, const char * privilege) { FILE *fp = NULL; - char smack_label[1024] = "/proc/self/attr/current"; + char label_path[1024] = "/proc/self/attr/current"; + char smack_label[1024] = {'\0',}; if (!p_cynara) { return false; } - fp = fopen(smack_label, "r"); + fp = fopen(label_path, "r"); if (fp != NULL) { - if (sizeof(smack_label) != fread(smack_label, 1, sizeof(smack_label), fp)) + if (0 >= fread(smack_label, 1, sizeof(smack_label), fp)) VC_ELM_LOG_ERR("[ERROR] fail to fread"); fclose(fp); -- 2.7.4 From 3bada475728ee63a0a114ee969baea9cbe2df31b Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Wed, 16 May 2018 15:09:20 +0900 Subject: [PATCH 06/16] Add tags for line coverage Change-Id: Ibfbcbf095ddf0a6101d2577f3679536d4ad8c639 Signed-off-by: sooyeon.kim --- CMakeLists.txt | 1 + packaging/voice-control-elm.spec | 2 ++ src/vc_elm.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8d30cc..49a8f50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ pkg_check_modules(pkgs REQUIRED # Build type SET(CMAKE_BUILD_TYPE "Release") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE") +#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE -fprofile-arcs -ftest-coverage") ADD_DEFINITIONS("-DVOICE_LIBDIR=\"${LIBDIR}\"") diff --git a/packaging/voice-control-elm.spec b/packaging/voice-control-elm.spec index 5cb6e7e..0547c02 100644 --- a/packaging/voice-control-elm.spec +++ b/packaging/voice-control-elm.spec @@ -47,6 +47,8 @@ cp %{SOURCE1001} %{SOURCE1002} . %build export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed" +#export CXXFLAGS="-fprofile-arcs -ftest-coverage" +#export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed -lgcov" rm -rf objdir mkdir objdir diff --git a/src/vc_elm.c b/src/vc_elm.c index 231e0d0..b884266 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -959,7 +959,7 @@ int _vc_elm_get_sub_item_hint_direction(Evas_Object *obj, vc_elm_direction_e *di else return VC_ELM_ERROR_OPERATION_FAILED; } - +//LCOV_EXCL_START int _vc_elm_set_text_domain(const char *domain, const char *locale_dir) { @@ -1132,7 +1132,7 @@ int vc_elm_unset_click_time() return VC_ELM_ERROR_NONE; } - +//LCOV_EXCL_STOP #ifdef SRPOL_DEBUG /** * @brief Wrapper for making internal function public - for automated test purposes -- 2.7.4 From 78389e5743dce9a5417c55c6a77d9d7f4e274430 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Tue, 31 Jul 2018 19:03:09 +0900 Subject: [PATCH 07/16] Add line coverage tags Change-Id: Ib7785c22ae0597488ba869ec81aeae35b4758959 Signed-off-by: sooyeon.kim --- src/vc_elm.c | 94 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/vc_elm.c b/src/vc_elm.c index b884266..38621d3 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -83,7 +83,7 @@ static int g_click_method = 0; static int __vc_elm_get_feature_enabled() { if (0 == g_feature_enabled) { - VC_ELM_LOG_DBG("[ERROR] Voice control feature NOT supported"); + VC_ELM_LOG_DBG("[ERROR] Voice control feature NOT supported"); //LCOV_EXCL_LINE return VC_ELM_ERROR_NOT_SUPPORTED; } else if (-1 == g_feature_enabled) { bool vc_supported = false; @@ -91,18 +91,18 @@ static int __vc_elm_get_feature_enabled() if (0 == system_info_get_platform_bool(VC_ELM_FEATURE_PATH, &vc_supported)) { if (0 == system_info_get_platform_bool(VC_ELM_MIC_FEATURE_PATH, &mic_supported)) { if (false == vc_supported || false == mic_supported) { - VC_ELM_LOG_DBG("[ERROR] Voice control feature NOT supported"); + VC_ELM_LOG_DBG("[ERROR] Voice control feature NOT supported"); //LCOV_EXCL_LINE g_feature_enabled = 0; return VC_ELM_ERROR_NOT_SUPPORTED; } g_feature_enabled = 1; } else { - VC_ELM_LOG_DBG("[ERROR] Fail to get feature value"); + VC_ELM_LOG_DBG("[ERROR] Fail to get feature value"); //LCOV_EXCL_LINE return VC_ELM_ERROR_NOT_SUPPORTED; } } else { - VC_ELM_LOG_DBG("[ERROR] Fail to get feature value"); + VC_ELM_LOG_DBG("[ERROR] Fail to get feature value"); //LCOV_EXCL_LINE return VC_ELM_ERROR_NOT_SUPPORTED; } } @@ -113,7 +113,7 @@ static int __check_privilege_initialize() { int ret = cynara_initialize(&p_cynara, NULL); if (CYNARA_API_SUCCESS != ret) - VC_ELM_LOG_ERR("[ERROR] fail to initialize"); + VC_ELM_LOG_ERR("[ERROR] fail to initialize"); //LCOV_EXCL_LINE return ret == CYNARA_API_SUCCESS; } @@ -131,7 +131,7 @@ static int __check_privilege(const char* uid, const char * privilege) fp = fopen(label_path, "r"); if (fp != NULL) { if (0 >= fread(smack_label, 1, sizeof(smack_label), fp)) - VC_ELM_LOG_ERR("[ERROR] fail to fread"); + VC_ELM_LOG_ERR("[ERROR] fail to fread"); //LCOV_EXCL_LINE fclose(fp); } @@ -160,16 +160,16 @@ static int __vc_elm_check_privilege() char uid[16]; if (0 == g_privilege_allowed) { - VC_ELM_LOG_ERR("[ERROR] Permission is denied"); + VC_ELM_LOG_ERR("[ERROR] Permission is denied"); //LCOV_EXCL_LINE return VC_ELM_ERROR_PERMISSION_DENIED; } else if (-1 == g_privilege_allowed) { if (false == __check_privilege_initialize()) { - VC_ELM_LOG_ERR("[ERROR] privilege initialize is failed"); + VC_ELM_LOG_ERR("[ERROR] privilege initialize is failed"); //LCOV_EXCL_LINE return VC_ELM_ERROR_PERMISSION_DENIED; } snprintf(uid, 16, "%d", getuid()); if (false == __check_privilege(uid, VC_ELM_PRIVILEGE)) { - VC_ELM_LOG_ERR("[ERROR] Permission is denied"); + VC_ELM_LOG_ERR("[ERROR] Permission is denied"); //LCOV_EXCL_LINE g_privilege_allowed = 0; __check_privilege_deinitialize(); return VC_ELM_ERROR_PERMISSION_DENIED; @@ -186,7 +186,7 @@ void __vc_config_vtauto_changed_cb(keynode_t *key, void *data) (void)data; //unused parameter int ret = vconf_get_bool(VCONFKEY_VC_VOICE_TOUCH_AUTOMODE, &g_is_vt_automode); if (0 != ret) { - VC_ELM_LOG_ERR("Fail to get vconfkey(%s), current voice touch mode(%d)", key, g_is_vt_automode); + VC_ELM_LOG_ERR("Fail to get vconfkey(%s), current voice touch mode(%d)", key, g_is_vt_automode); //LCOV_EXCL_LINE } return; @@ -199,7 +199,7 @@ int vc_elm_initialize() } if (true == is_vc_elm_initialized) { - VC_ELM_LOG_DBG("vc elm is already initialized"); + VC_ELM_LOG_DBG("vc elm is already initialized"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } @@ -232,7 +232,7 @@ int vc_elm_deinitialize() } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_DBG("vc elm is already deinitialized"); + VC_ELM_LOG_DBG("vc elm is already deinitialized"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } @@ -312,18 +312,18 @@ int vc_elm_foreach_supported_widgets(vc_elm_widget_cb callback, void *user_data) } if (NULL == callback) { - VC_ELM_LOG_ERR("Invalid parameters detected!"); + VC_ELM_LOG_ERR("Invalid parameters detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } data.callback = callback; data.data = user_data; hash = _vc_elm_core_get_config_widget_map(); if (NULL == hash) { - VC_ELM_LOG_ERR("Config widget map is NULL!"); + VC_ELM_LOG_ERR("Config widget map is NULL!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } eina_hash_foreach(hash, __hash_fn, &data); @@ -345,21 +345,21 @@ int vc_elm_foreach_supported_actions(const char *widget, vc_elm_action_cb callba } if ((NULL == widget) || (NULL == callback)) { - VC_ELM_LOG_ERR("Invalid parameters detected!"); + VC_ELM_LOG_ERR("Invalid parameters detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } hash = _vc_elm_core_get_config_widget_map(); if (NULL == hash) { - VC_ELM_LOG_ERR("Config widget map is NULL!"); + VC_ELM_LOG_ERR("Config widget map is NULL!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } actions_list = (Eina_List *)eina_hash_find(hash, widget); if (NULL == actions_list) { - VC_ELM_LOG_ERR("Action list is NULL!"); + VC_ELM_LOG_ERR("Action list is NULL!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } EINA_LIST_FOREACH(actions_list, l, action_tag) { @@ -384,27 +384,27 @@ int vc_elm_get_action_command(const char *action, char **command) } if ((NULL == action) || (NULL == command)) { - VC_ELM_LOG_ERR("Invalid parameters detected!"); + VC_ELM_LOG_ERR("Invalid parameters detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } hash = _vc_elm_core_get_config_action_map(); if (NULL == hash) { - VC_ELM_LOG_ERR("Config action map is NULL!"); + VC_ELM_LOG_ERR("Config action map is NULL!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } command_name = eina_hash_find(_vc_elm_core_get_config_action_map(), action); if (NULL == command_name) { - VC_ELM_LOG_ERR("No command for given action name!"); + VC_ELM_LOG_ERR("No command for given action name!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } len = strlen(command_name) + 1; *command = (char *)calloc(len, sizeof(char)); if (NULL == *command) { - VC_ELM_LOG_ERR("Can not allocate memory!"); + VC_ELM_LOG_ERR("Can not allocate memory!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OPERATION_FAILED; } memcpy(*command, command_name, len); @@ -424,26 +424,26 @@ int vc_elm_create_object(Evas_Object *object, vc_elm_h *vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); + VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if ((NULL == object) || (!elm_object_widget_check(object))) { - VC_ELM_LOG_ERR("Invalid parameters detected! Incorrect (Evas_Object *)"); + VC_ELM_LOG_ERR("Invalid parameters detected! Incorrect (Evas_Object *)"); //LCOV_EXCL_LINE *vc_elm = NULL; return VC_ELM_ERROR_INVALID_PARAMETER; } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } if (!_vc_elm_core_register_default_widget(_get_ui_object_name(object), EINA_FALSE, NULL) || (NULL == eina_hash_find(_vc_elm_core_get_config_widget_map(), elm_widget_type_get(object)))) { - VC_ELM_LOG_ERR("Not supported widget"); + VC_ELM_LOG_ERR("Not supported widget"); //LCOV_EXCL_LINE *vc_elm = NULL; return VC_ELM_ERROR_NOT_SUPPORTED; } handler = (vc_elm_s *)calloc(1, sizeof(vc_elm_s)); if (NULL == handler) { - VC_ELM_LOG_ERR("Calloc function returned NULL"); + VC_ELM_LOG_ERR("Calloc function returned NULL"); //LCOV_EXCL_LINE return VC_ELM_ERROR_OUT_OF_MEMORY; } handler->type = VC_ELM_TYPE_EVAS_OBJECT; @@ -467,21 +467,21 @@ int vc_elm_create_item(Elm_Object_Item *item, vc_elm_h *vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); + VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if (NULL == item) { - VC_ELM_LOG_ERR("Invalid parameters detected! (Elm_Object_Item *) poiter is NULL"); + VC_ELM_LOG_ERR("Invalid parameters detected! (Elm_Object_Item *) poiter is NULL"); //LCOV_EXCL_LINE *vc_elm = NULL; return VC_ELM_ERROR_INVALID_PARAMETER; } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } handler = (vc_elm_s *)calloc(1, sizeof(vc_elm_s)); if (NULL == handler) { - VC_ELM_LOG_ERR("Calloc function returned NULL"); + VC_ELM_LOG_ERR("Calloc function returned NULL"); //LCOV_EXCL_LINE *vc_elm = NULL; return VC_ELM_ERROR_OUT_OF_MEMORY; } @@ -508,19 +508,19 @@ int vc_elm_destroy(vc_elm_h vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } handler = (vc_elm_s *)vc_elm; type = handler->type; if (!((VC_ELM_TYPE_EVAS_OBJECT == type) || (VC_ELM_TYPE_ITEM == type))) { - VC_ELM_LOG_ERR("Invalid type detected!"); + VC_ELM_LOG_ERR("Invalid type detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } list = eina_list_data_find_list(g_handlers_list, handler); if (NULL == list) { - VC_ELM_LOG_ERR("Bad handler pointer detected!"); + VC_ELM_LOG_ERR("Bad handler pointer detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } g_handlers_list = eina_list_remove_list(g_handlers_list, list); @@ -544,7 +544,7 @@ int vc_elm_set_command(vc_elm_h vc_elm, const char *command) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -573,7 +573,7 @@ int vc_elm_unset_command(vc_elm_h vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -602,7 +602,7 @@ int vc_elm_set_command_hint(vc_elm_h vc_elm, const char* hint) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -631,7 +631,7 @@ int vc_elm_unset_command_hint(vc_elm_h vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -660,7 +660,7 @@ int vc_elm_set_command_hint_direction(vc_elm_h vc_elm, vc_elm_direction_e direct } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -690,7 +690,7 @@ int vc_elm_get_command_hint_direction(vc_elm_h vc_elm, vc_elm_direction_e *direc } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -719,7 +719,7 @@ int vc_elm_set_command_hint_offset(vc_elm_h vc_elm, int pos_x, int pos_y) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -749,11 +749,11 @@ int vc_elm_get_command_hint_offset(vc_elm_h vc_elm, int *pos_x, int *pos_y) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); + VC_ELM_LOG_ERR("Invalid vc_elm parameter detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if ((NULL == pos_x) || (NULL == pos_y)) { - VC_ELM_LOG_ERR("Invalid position poiters detected!"); + VC_ELM_LOG_ERR("Invalid position poiters detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; @@ -779,7 +779,7 @@ int vc_elm_set_current_language_changed_cb(vc_elm_current_language_changed_cb ca } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } @@ -802,7 +802,7 @@ int vc_elm_unset_current_language_changed_cb(void) } if (false == is_vc_elm_initialized) { - VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); + VC_ELM_LOG_ERR("Invalid state detected! Library not initialized!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_STATE; } -- 2.7.4 From f27b03c4dc0d2248610bcd703d3691b487420098 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Thu, 16 Aug 2018 15:58:52 +0900 Subject: [PATCH 08/16] Fix corrupted double-linked list Change-Id: Ib3ac1485157c741f0f5c245892155e25b42d8564 Signed-off-by: sooyeon.kim --- src/vc_elm_core.c | 114 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 37 deletions(-) diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index d46c05d..df50407 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -2351,18 +2351,26 @@ int _vc_elm_core_read_xml_data() while (tmp != NULL) { if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_ACTION_NAME)) { key = xmlNodeGetContent(tmp); - VC_ELM_LOG_DBG("action name %s", (char *)key); - action_name = eina_stringshare_add((char *)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("action name %s", (char *)key); + action_name = eina_stringshare_add((char *)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("action name is NULL"); + } } else if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_ACTION_COMMAND)) { const char *action_command = NULL; key = xmlNodeGetContent(tmp); - VC_ELM_LOG_DBG("action command %s", (char *)key); - if (action_name != NULL) { - action_command = eina_stringshare_add((char *)key); - eina_hash_add(g_config_action_map, action_name, action_command); + if (NULL != key) { + VC_ELM_LOG_DBG("action command %s", (char *)key); + if (action_name != NULL) { + action_command = eina_stringshare_add((char *)key); + eina_hash_add(g_config_action_map, action_name, action_command); + } + xmlFree(key); + } else { + VC_ELM_LOG_DBG("action command is NULL"); } - xmlFree(key); } tmp = tmp->next; } @@ -2378,9 +2386,13 @@ int _vc_elm_core_read_xml_data() while (tmp != NULL) { if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_WIDGET_NAME)) { key = xmlNodeGetContent(tmp); - VC_ELM_LOG_DBG("widget name %s", (char *)key); - widget_name = eina_stringshare_add((char *)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("widget name %s", (char *)key); + widget_name = eina_stringshare_add((char *)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("widget name is NULL"); + } } else if (0 == xmlStrcmp(tmp->name, XML_CAST VC_ELM_TAG_WIDGET_ACTIONS)) { xmlNodePtr actions = tmp->xmlChildrenNode; Eina_List *actions_list = NULL; @@ -2388,10 +2400,14 @@ int _vc_elm_core_read_xml_data() if (0 == xmlStrcmp(actions->name, XML_CAST VC_ELM_TAG_ACTION_NAME)) { const char *action_tag = NULL; key = xmlNodeGetContent(actions); - VC_ELM_LOG_DBG("widget action name %s", (char*)key); - action_tag = eina_stringshare_add((char*)key); - actions_list = eina_list_append(actions_list, action_tag); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("widget action name %s", (char*)key); + action_tag = eina_stringshare_add((char*)key); + actions_list = eina_list_append(actions_list, action_tag); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("widget action name is NULL"); + } } actions = actions->next; } @@ -2408,26 +2424,38 @@ int _vc_elm_core_read_xml_data() while (child != NULL) { if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_SHOW)) { key = xmlNodeGetContent(child); - VC_ELM_LOG_DBG("hint show %s", (char*)key); - if (g_tooltips_show) - free(g_tooltips_show); - g_tooltips_show = strdup((char*)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint show %s", (char*)key); + if (g_tooltips_show) + free(g_tooltips_show); + g_tooltips_show = strdup((char*)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint show is NULL"); + } } else if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_DIRECTION)) { key = xmlNodeGetContent(child); - VC_ELM_LOG_DBG("hint direction %s", (char*)key); - if (g_tooltips_default_direction) - free(g_tooltips_default_direction); - g_tooltips_default_direction = strdup((char*)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint direction %s", (char*)key); + if (g_tooltips_default_direction) + free(g_tooltips_default_direction); + g_tooltips_default_direction = strdup((char*)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint direction is NULL"); + } } else if (0 == xmlStrcmp(child->name, XML_CAST VC_ELM_TAG_HINT_IMAGE)) { key = xmlNodeGetContent(child); - VC_ELM_LOG_DBG("hint image %s", (char*)key); - if (g_tooltips_image_path) - free(g_tooltips_image_path); - charkey = tzplatform_mkpath(TZ_SYS_RO_SHARE, (const char*)key); - g_tooltips_image_path = strdup(charkey); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint image %s", (char*)key); + if (g_tooltips_image_path) + free(g_tooltips_image_path); + charkey = tzplatform_mkpath(TZ_SYS_RO_SHARE, (const char*)key); + g_tooltips_image_path = strdup(charkey); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint image is NULL"); + } } child = child->next; } @@ -2439,16 +2467,28 @@ int _vc_elm_core_read_xml_data() while (cur != NULL) { if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_TIZEN_VERSION)) { key = xmlNodeGetContent(cur); - VC_ELM_LOG_DBG("hint direction %s", (char*)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint direction %s", (char*)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint direction is NULL"); + } } else if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_PROFILE)) { key = xmlNodeGetContent(cur); - VC_ELM_LOG_DBG("hint direction %s", (char*)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint direction %s", (char*)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint direction is NULL"); + } } else if (0 == xmlStrcmp(cur->name, XML_CAST VC_ELM_TAG_EFL_VERSION)) { key = xmlNodeGetContent(cur); - VC_ELM_LOG_DBG("hint direction %s", (char*)key); - xmlFree(key); + if (NULL != key) { + VC_ELM_LOG_DBG("hint direction %s", (char*)key); + xmlFree(key); + } else { + VC_ELM_LOG_DBG("hint direction is NULL"); + } } cur = cur->next; } -- 2.7.4 From cef96aee8e177354eb1dab092d7376c20178a85e Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Fri, 17 Aug 2018 14:06:06 +0900 Subject: [PATCH 09/16] Check if window object is or not, before checking focus Change-Id: I25264fd2215d02582374d6e50c6e310a72612e23 Signed-off-by: Wonnam Jang --- src/vc_elm_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index d46c05d..76f9e1a 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -2234,7 +2234,7 @@ static Eina_Bool __idle_enter(void *data) EINA_LIST_FREE(objs, obj) { VC_ELM_LOG_DBG("foreach obj %p", (void*)obj); window = elm_object_top_widget_get(obj); - if (window && EINA_TRUE == elm_win_focus_get(window)) { + if (window && !strcmp(evas_object_type_get(window), "Elm_Win") && EINA_TRUE == elm_win_focus_get(window)) { VC_ELM_LOG_DBG("NEW Focused g_default %ud", elm_win_xwindow_get(window)); g_default_window = window; } -- 2.7.4 From bf04a25765315c67a92e388c27de79a02bedeb95 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Tue, 28 Aug 2018 15:50:31 +0900 Subject: [PATCH 10/16] Fix spelling errata Change-Id: Id991a9209b714be8f39ba3709289ee5409cc3c7c Signed-off-by: sooyeon.kim --- include/voice_control_elm_private.h | 2 +- src/vc_elm.c | 10 +++++----- src/vc_elm_core.c | 12 ++++++------ src/vc_elm_core.h | 8 ++++---- src/vc_elm_core_default_widgets.c | 6 +++--- src/vc_elm_tooltip.h | 2 +- src/vc_elm_widget_wrapper.c | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/include/voice_control_elm_private.h b/include/voice_control_elm_private.h index 4559023..09516e2 100644 --- a/include/voice_control_elm_private.h +++ b/include/voice_control_elm_private.h @@ -72,7 +72,7 @@ int vc_elm_get_auto_register_mode(int* mode, int* click_method); * @brief Add allowed text part for auto command register. * @since_tizen 3.0 * -* @param[in] text_part The text part of elemenatry widget +* @param[in] text_part The text part of elementary widget * * @return 0 on success, otherwise a negative error value * @retval #VC_ELM_ERROR_NONE Successful diff --git a/src/vc_elm.c b/src/vc_elm.c index 38621d3..69ab635 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -39,7 +39,7 @@ #define VC_ELM_MODE_AUTO_APPFW 2 /** -* @brief Internal variable. It can check whether voice control elm is initilaized or not. +* @brief Internal variable. It can check whether voice control elm is initialized or not. */ static unsigned is_vc_elm_initialized = false; @@ -424,7 +424,7 @@ int vc_elm_create_object(Evas_Object *object, vc_elm_h *vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); //LCOV_EXCL_LINE + VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) pointer is NULL"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if ((NULL == object) || (!elm_object_widget_check(object))) { @@ -467,11 +467,11 @@ int vc_elm_create_item(Elm_Object_Item *item, vc_elm_h *vc_elm) } if (NULL == vc_elm) { - VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) poiter is NULL"); //LCOV_EXCL_LINE + VC_ELM_LOG_ERR("Invalid parameters detected! (vc_elm_h *) pointer is NULL"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } if (NULL == item) { - VC_ELM_LOG_ERR("Invalid parameters detected! (Elm_Object_Item *) poiter is NULL"); //LCOV_EXCL_LINE + VC_ELM_LOG_ERR("Invalid parameters detected! (Elm_Object_Item *) pointer is NULL"); //LCOV_EXCL_LINE *vc_elm = NULL; return VC_ELM_ERROR_INVALID_PARAMETER; } @@ -753,7 +753,7 @@ int vc_elm_get_command_hint_offset(vc_elm_h vc_elm, int *pos_x, int *pos_y) return VC_ELM_ERROR_INVALID_PARAMETER; } if ((NULL == pos_x) || (NULL == pos_y)) { - VC_ELM_LOG_ERR("Invalid position poiters detected!"); //LCOV_EXCL_LINE + VC_ELM_LOG_ERR("Invalid position pointers detected!"); //LCOV_EXCL_LINE return VC_ELM_ERROR_INVALID_PARAMETER; } type = handler->type; diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index 42ccfc2..b8ceb16 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -95,7 +95,7 @@ const Eina_Hash *_vc_elm_core_get_config_widget_map() } /** - * @brief Structure that wrapps a command with corresponding widget and it's parent + * @brief Structure that wraps a command with corresponding widget and it's parent */ struct Wrapped_Command { const char *cmd; @@ -106,7 +106,7 @@ struct Wrapped_Command { }; /** - * @brief Structure that wrapps a wrapped command with it's command and param + * @brief Structure that wraps a wrapped command with it's command and param */ struct Unwrapped_Command { struct Wrapped_Command *wrap; @@ -974,8 +974,8 @@ static void __elm_widget_foreach_in_tree(Evas_Object *widget, Eina_Bool(*cb)(Eva VC_ELM_LOG_DBG("call subobjects_func, constant_list(%d)", eina_list_count(list)); constant_list = info->get_subobjects_func(widget, info->user_data); } else if (obj_name != NULL && (!strcmp("Elm_Button", obj_name) || !strcmp("Elm_Index", obj_name))) { - /* We dont want to have a tooltip for elm_icon on button */ - /* We dont want to have tooltips for elm_index items */ + /* We don't want to have a tooltip for elm_icon on button */ + /* We don't want to have tooltips for elm_index items */ return; } else if (obj_name != NULL && !strcmp("Elm_List", obj_name)) { VC_ELM_LOG_DBG(":: %s", obj_name); @@ -1453,7 +1453,7 @@ static void __vc_add_commands() g_wrapped_commands = NULL; } - VC_ELM_LOG_DBG("currene objects(%d)", eina_list_count(g_current_ui_objects)); + VC_ELM_LOG_DBG("current objects(%d)", eina_list_count(g_current_ui_objects)); EINA_LIST_FOREACH(g_current_ui_objects, _l, obj) { struct vc_elm_core_widget_info *info = NULL; const char *obj_name = _get_ui_object_name(obj); @@ -2331,7 +2331,7 @@ int _vc_elm_core_read_xml_data() root = main_node->xmlChildrenNode; while (root != NULL) { - VC_ELM_LOG_DBG("Root nodes mames %s", root->name); + VC_ELM_LOG_DBG("Root nodes names %s", root->name); if (0 == xmlStrcmp(root->name, XML_CAST VC_ELM_TAG_BASE_NAME)) { cur = root->xmlChildrenNode; do { diff --git a/src/vc_elm_core.h b/src/vc_elm_core.h index b241a20..e1e5641 100644 --- a/src/vc_elm_core.h +++ b/src/vc_elm_core.h @@ -96,7 +96,7 @@ typedef struct vc_elm_core_action_info vc_elm_action_info; typedef struct vc_elm_core_widget_info vc_elm_widget_info; /** - * @brief A callback function type to be called to get wigdet subobjects list + * @brief A callback function type to be called to get widget subobjects list */ typedef Eina_List *(*vc_elm_get_subobjects_cb)(const Evas_Object *obj, void *user_data); @@ -337,7 +337,7 @@ const char *_vc_elm_core_get_object_hint(const Evas_Object *obj); /** * @brief vc_elm_core_object_skip_set function marks a widget that hint is not to be set * @param obj pointer to widget - * @return EINA_TRUE if succesful or EINA_FALSE otherwise + * @return EINA_TRUE if successful or EINA_FALSE otherwise */ Eina_Bool _vc_elm_core_set_skip_object(Evas_Object *obj); @@ -416,14 +416,14 @@ Eina_Bool _vc_elm_core_set_object_hint_direction(Evas_Object *obj, vc_elm_direct * @brief vc_elm_core_object_hint_direction_get function gets tooltip's direction * @param obj pointer to widget * @param direction direction of the tooltip - * @return EINA_TRUE if successfull, EINA_FALSE otherwise + * @return EINA_TRUE if successful, EINA_FALSE otherwise */ Eina_Bool _vc_elm_core_get_object_hint_direction(Evas_Object *obj, vc_elm_direction_e *direction); /** * @brief vc_elm_core_object_hint_direction_del function unsets tooltip's direction * @param obj pointer to widget - * @return EINA_TRUE if successfull, EINA_FALSE otherwise + * @return EINA_TRUE if successful, EINA_FALSE otherwise */ Eina_Bool _vc_elm_core_del_object_hint_direction(Evas_Object *obj); diff --git a/src/vc_elm_core_default_widgets.c b/src/vc_elm_core_default_widgets.c index ad453d1..76e04fe 100644 --- a/src/vc_elm_core_default_widgets.c +++ b/src/vc_elm_core_default_widgets.c @@ -70,7 +70,7 @@ static void __set_tooltips_position_on_visible_items(Evas_Object *parent, Elm_Ob /** * @brief Function for scrolling elementary object - * @param Scrolable Evas_Object + * @param Scrollable Evas_Object * @param enumeration value of amount of scroll * @param enumeration value of turn * @param enumeration value of direction @@ -1025,11 +1025,11 @@ static void __colorselector_value_activator_func(Evas_Object *obj, void *data, c } /** - * @brief Function that analyse layout for color objects. + * @brief Function that analyze layout for color objects. */ static void __sub_layout_inspect(Eina_List *ret, Evas_Object *widget) { - /*Temporary fix for pallete without tooltips*/ + /*Temporary fix for palette without tooltips*/ const char *colors[] = {"pink", "violet", "purple", "navy", "blue", "cyan", "green", "lime", "yellow", "red"}; const Eina_List *l = NULL; Evas_Object *obj = NULL; diff --git a/src/vc_elm_tooltip.h b/src/vc_elm_tooltip.h index 63912b3..5f28283 100644 --- a/src/vc_elm_tooltip.h +++ b/src/vc_elm_tooltip.h @@ -57,7 +57,7 @@ void _vc_elm_turn_off_tooltips(); void _vc_elm_add_tooltip(Evas_Object *obj, const char *text); /** - * @brief Function that recalculates postitons of all the visible tooltips + * @brief Function that recalculates positions of all the visible tooltips * and shows them */ void _vc_elm_relayout_and_show_tooltips(); diff --git a/src/vc_elm_widget_wrapper.c b/src/vc_elm_widget_wrapper.c index 451bd9d..0f2e9aa 100644 --- a/src/vc_elm_widget_wrapper.c +++ b/src/vc_elm_widget_wrapper.c @@ -271,7 +271,7 @@ static void __vc_service_state_changed_cb(vc_service_state_e previous, vc_servic static void __vc_error_cb(vc_error_e reason, void *user_data) { (void)user_data; - VC_ELM_LOG_ERR("VC Error occured : %d", reason); + VC_ELM_LOG_ERR("VC Error occurred : %d", reason); } static void __vc_result_cb(vc_result_event_e event, vc_cmd_list_h vc_cmd_list, const char *result, void *user_data) -- 2.7.4 From fdb8bd562df812b53d2a07d522b2fa4b9b39a7d7 Mon Sep 17 00:00:00 2001 From: Wonnam Jang Date: Wed, 12 Sep 2018 10:50:55 +0900 Subject: [PATCH 11/16] Fix build warning Change-Id: Ie5d9c9646f1a98b7b8f8d42b86212fb1b75ec31e Signed-off-by: Wonnam Jang --- src/vc_elm_widget_wrapper.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vc_elm_widget_wrapper.c b/src/vc_elm_widget_wrapper.c index 0f2e9aa..0348379 100644 --- a/src/vc_elm_widget_wrapper.c +++ b/src/vc_elm_widget_wrapper.c @@ -86,6 +86,7 @@ static void __vc_widget_send_current_command_group_cb(vc_cmd_list_h *vc_group, v static void __start_initialize_thread(void *data, Ecore_Thread *thread) { (void)data; + (void)thread; char *lang = NULL; if (vcw.initialized) { @@ -119,6 +120,9 @@ static void __start_initialize_thread(void *data, Ecore_Thread *thread) static void __end_initialize_thread(void *data, Ecore_Thread *thread) { + (void)data; + (void)thread; + VC_ELM_LOG_ERR("[SUCCESS] End initialize thread"); } -- 2.7.4 From 0a9aef125baf7602ddfc8a3400de67496e5d9f32 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Wed, 10 Oct 2018 17:11:02 +0900 Subject: [PATCH 12/16] Change ecore_wl API Change-Id: I28464d2b3e0300eb5b669999a828e0ee3d523bab Signed-off-by: sooyeon.kim --- src/vc_elm_efl_dump.c | 8 ++++++-- src/vc_elm_efl_dump.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vc_elm_efl_dump.c b/src/vc_elm_efl_dump.c index bc8a5fb..f172721 100644 --- a/src/vc_elm_efl_dump.c +++ b/src/vc_elm_efl_dump.c @@ -863,6 +863,8 @@ ea_object_dump_full_list_get(Eina_Bool exclude_unfocusable_text) ecore_wl_sync(); + Ecore_Wl2_Display* wl2_display = ecore_wl2_connected_display_get(NULL); + if (EINA_TRUE == g_set_geometry) { util_mgr->x = g_geo_x; util_mgr->y = g_geo_y; @@ -871,7 +873,7 @@ ea_object_dump_full_list_get(Eina_Bool exclude_unfocusable_text) } else { util_mgr->x = 0; util_mgr->y = 0; - ecore_wl_screen_size_get(&util_mgr->w, &util_mgr->h); + ecore_wl2_display_screen_size_get(wl2_display, &util_mgr->w, &util_mgr->h); } _object_tree(util_mgr, 1, exclude_unfocusable_text); @@ -907,7 +909,9 @@ ea_object_dump_text_list_get(Eina_Bool exclude_unfocusable_text) ecore_wl_sync(); util_mgr->x = 0; util_mgr->y = 0; - ecore_wl_screen_size_get(&util_mgr->w, &util_mgr->h); + + Ecore_Wl2_Display* wl2_display = ecore_wl2_connected_display_get(NULL); + ecore_wl2_display_screen_size_get(wl2_display, &util_mgr->w, &util_mgr->h); _object_tree(util_mgr, 2, exclude_unfocusable_text); } diff --git a/src/vc_elm_efl_dump.h b/src/vc_elm_efl_dump.h index 27ecd64..576341e 100644 --- a/src/vc_elm_efl_dump.h +++ b/src/vc_elm_efl_dump.h @@ -32,6 +32,7 @@ #include #include +#include #include -- 2.7.4 From 7388740b692bd064391937f2cb3754092bf0b7e3 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Wed, 24 Oct 2018 19:16:23 +0900 Subject: [PATCH 13/16] Change ecore_wl to ecore_wl2 Change-Id: I4452a1af2b9963a7d286569cfe945180d2bf6860 Signed-off-by: sooyeon.kim --- src/vc_elm_core.c | 2 +- src/vc_elm_efl_dump.c | 4 ++-- src/vc_elm_efl_dump.h | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/vc_elm_core.c b/src/vc_elm_core.c index b8ceb16..4c0fcd5 100644 --- a/src/vc_elm_core.c +++ b/src/vc_elm_core.c @@ -2229,7 +2229,7 @@ static Eina_Bool __idle_enter(void *data) Evas_Object *window = NULL; EINA_LIST_FREE(ecore_evas_list, ee) { evas = ecore_evas_get(ee); - ecore_wl_sync(); + ecore_wl2_sync(); objs = evas_objects_in_rectangle_get(evas, SHRT_MIN, SHRT_MIN, USHRT_MAX, USHRT_MAX, EINA_TRUE, EINA_TRUE); EINA_LIST_FREE(objs, obj) { VC_ELM_LOG_DBG("foreach obj %p", (void*)obj); diff --git a/src/vc_elm_efl_dump.c b/src/vc_elm_efl_dump.c index f172721..237c0d7 100644 --- a/src/vc_elm_efl_dump.c +++ b/src/vc_elm_efl_dump.c @@ -861,7 +861,7 @@ ea_object_dump_full_list_get(Eina_Bool exclude_unfocusable_text) find_popup = 0; skip_text = 0; - ecore_wl_sync(); + ecore_wl2_sync(); Ecore_Wl2_Display* wl2_display = ecore_wl2_connected_display_get(NULL); @@ -906,7 +906,7 @@ ea_object_dump_text_list_get(Eina_Bool exclude_unfocusable_text) evas = ecore_evas_get(ee); util_mgr->evas = evas; - ecore_wl_sync(); + ecore_wl2_sync(); util_mgr->x = 0; util_mgr->y = 0; diff --git a/src/vc_elm_efl_dump.h b/src/vc_elm_efl_dump.h index 576341e..9d168b1 100644 --- a/src/vc_elm_efl_dump.h +++ b/src/vc_elm_efl_dump.h @@ -31,7 +31,6 @@ #define ELM_INTERNAL_API_ARGESFSDFEFC #include -#include #include #include -- 2.7.4 From d7eaa4c38b961d4c7644fe96bddb3977899f9f2a Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Tue, 21 May 2019 20:43:01 +0900 Subject: [PATCH 14/16] Add gcov package generation feature Change-Id: I5e2f1f0efbd1c29f26a45846d7110186d26dcd8f Signed-off-by: sooyeon.kim --- CMakeLists.txt | 1 - packaging/voice-control-elm.spec | 31 +++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 49a8f50..d8d30cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,6 @@ pkg_check_modules(pkgs REQUIRED # Build type SET(CMAKE_BUILD_TYPE "Release") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE") -#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE -fprofile-arcs -ftest-coverage") ADD_DEFINITIONS("-DVOICE_LIBDIR=\"${LIBDIR}\"") diff --git a/packaging/voice-control-elm.spec b/packaging/voice-control-elm.spec index 0547c02..30458e3 100644 --- a/packaging/voice-control-elm.spec +++ b/packaging/voice-control-elm.spec @@ -41,14 +41,26 @@ Requires: %{name} = %{version} %description devel voice-control-elm library development headers +%if 0%{?gcov:1} +%package gcov +Summary: voice-control-elm (gcov) +Group: Graphics & UI Framework/Voice Framework +%description gcov +voice-control-elm gcov objects +%endif + %prep %setup -q cp %{SOURCE1001} %{SOURCE1002} . %build export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed" -#export CXXFLAGS="-fprofile-arcs -ftest-coverage" -#export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed -lgcov" + +%if 0%{?gcov:1} +export CXXFLAGS="-fprofile-arcs -ftest-coverage" +export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed -lgcov" +%endif + rm -rf objdir mkdir objdir @@ -77,6 +89,11 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` -DSRPOL_DEBUG="0") } +%if 0%{?gcov:1} +mkdir -p gcov-obj +find . -name '*.gcno' -exec cp '{}' gcov-obj ';' +%endif + %install rm -rf %{buildroot} @@ -87,6 +104,11 @@ rm -rf %{buildroot} %clean rm -rf %{buildroot} +%if 0%{?gcov:1} +mkdir -p %{buildroot}%{_datadir}/gcov/obj +install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj +%endif + %post /sbin/ldconfig @@ -111,3 +133,8 @@ mkdir -p %{TZ_SYS_RO_SHARE}/voice %{_includedir}/voice_control_elm.h %{_includedir}/voice_control_elm_private.h %{_libdir}/pkgconfig/%{name}.pc + +%if 0%{?gcov:1} +%files gcov +%{_datadir}/gcov/obj/* +%endif -- 2.7.4 From 13a50d52236d56da390eeabd87efff0670b473a1 Mon Sep 17 00:00:00 2001 From: "sooyeon.kim" Date: Mon, 22 Jul 2019 20:44:39 +0900 Subject: [PATCH 15/16] Fix automatic gcov feature Change-Id: Iccb7059dd28a30768b29dac8ed03a756a961869f Signed-off-by: sooyeon.kim --- packaging/voice-control-elm.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packaging/voice-control-elm.spec b/packaging/voice-control-elm.spec index 30458e3..5881271 100644 --- a/packaging/voice-control-elm.spec +++ b/packaging/voice-control-elm.spec @@ -54,11 +54,12 @@ voice-control-elm gcov objects cp %{SOURCE1001} %{SOURCE1002} . %build -export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed" +export LDFLAGS+=" -Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed" %if 0%{?gcov:1} -export CXXFLAGS="-fprofile-arcs -ftest-coverage" -export LDFLAGS+="-Wl,--rpath=%{_libdir} -Wl,--hash-style=both -Wl,--as-needed -lgcov" +export CFLAGS+=" -fprofile-arcs -ftest-coverage" +export CXXFLAGS+=" -fprofile-arcs -ftest-coverage" +export LDFLAGS+=" -lgcov" %endif rm -rf objdir @@ -88,6 +89,7 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'` -DMAJORVER=${MAJORVER} \ -DSRPOL_DEBUG="0") } +(cd objdir && make %{?jobs:-j%jobs}) %if 0%{?gcov:1} mkdir -p gcov-obj @@ -101,14 +103,14 @@ rm -rf %{buildroot} (cd objdir && %make_install) -%clean -rm -rf %{buildroot} - %if 0%{?gcov:1} mkdir -p %{buildroot}%{_datadir}/gcov/obj install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj %endif +%clean +rm -rf %{buildroot} + %post /sbin/ldconfig -- 2.7.4 From 134bab5c5b62a4ecbc491b17aa538c119037aab4 Mon Sep 17 00:00:00 2001 From: sungrae jo Date: Thu, 22 Aug 2019 17:38:51 +0900 Subject: [PATCH 16/16] Remove check type code. Change-Id: I2d672047e71512d802730b82be970e56de0963a3 Signed-off-by: sungrae jo --- src/vc_elm.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/vc_elm.c b/src/vc_elm.c index 69ab635..39b4f82 100644 --- a/src/vc_elm.c +++ b/src/vc_elm.c @@ -499,7 +499,6 @@ int vc_elm_destroy(vc_elm_h vc_elm) { vc_elm_s *handler = NULL; Eina_List *list = NULL; - int type = 0; if (0 != __vc_elm_get_feature_enabled()) { return VC_ELM_ERROR_NOT_SUPPORTED; } @@ -512,12 +511,6 @@ int vc_elm_destroy(vc_elm_h vc_elm) return VC_ELM_ERROR_INVALID_PARAMETER; } handler = (vc_elm_s *)vc_elm; - type = handler->type; - if (!((VC_ELM_TYPE_EVAS_OBJECT == type) || (VC_ELM_TYPE_ITEM == type))) { - VC_ELM_LOG_ERR("Invalid type detected!"); //LCOV_EXCL_LINE - return VC_ELM_ERROR_INVALID_PARAMETER; - } - list = eina_list_data_find_list(g_handlers_list, handler); if (NULL == list) { VC_ELM_LOG_ERR("Bad handler pointer detected!"); //LCOV_EXCL_LINE -- 2.7.4