From a4e9c239449ebaa1a5157333cc434e57289ac3b6 Mon Sep 17 00:00:00 2001 From: Sung-jae Park Date: Wed, 6 May 2015 17:51:16 +0900 Subject: [PATCH] Add more exceptional case handling codes. Change-Id: I8caeaa27240c02623aabb89c1745247b08af2047 --- widget_viewer_evas/src/widget_viewer_evas.c | 159 +++++++++++++++++++- 1 file changed, 158 insertions(+), 1 deletion(-) diff --git a/widget_viewer_evas/src/widget_viewer_evas.c b/widget_viewer_evas/src/widget_viewer_evas.c index 4c483e74..9d74e52a 100755 --- a/widget_viewer_evas/src/widget_viewer_evas.c +++ b/widget_viewer_evas/src/widget_viewer_evas.c @@ -6069,6 +6069,15 @@ EAPI int widget_viewer_evas_init(Evas_Object *win) { int ret; + if (!win) { + return WIDGET_ERROR_INVALID_PARAMETER; + } + + if (s_info.initialized) { + ErrPrint("Already initialized\n"); + return WIDGET_ERROR_ALREADY_EXIST; + } + ecore_x_window_size_get(0, &s_info.screen_width, &s_info.screen_height); s_info.conf.field.render_animator = 0; // By default, use render animator for updating @@ -6106,28 +6115,47 @@ EAPI int widget_viewer_evas_init(Evas_Object *win) EAPI int widget_viewer_evas_fini(void) { + int ret; + if (s_info.initialized) { widget_viewer_remove_event_handler(widget_event_handler); widget_viewer_remove_fault_handler(widget_fault_handler); widget_viewer_fini(); widget_conf_reset(); s_info.initialized = 0; + + ret = WIDGET_ERROR_NONE; + } else { + ret = WIDGET_ERROR_FAULT; } + return 0; } EAPI int widget_viewer_evas_notify_resumed_status_of_viewer(void) { + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + return widget_viewer_notify_resumed_status_of_viewer(); } EAPI int widget_viewer_evas_notify_paused_status_of_viewer(void) { + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + return widget_viewer_notify_paused_status_of_viewer(); } EAPI int widget_viewer_evas_notify_orientation_of_viewer(int orientation) { + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + return widget_viewer_notify_orientation_of_viewer(orientation); } @@ -6142,6 +6170,11 @@ EAPI Evas_Object *widget_viewer_evas_add_widget(Evas_Object *parent, const char char *cluster = DEFAULT_CLUSTER; char *category = DEFAULT_CATEGORY; + if (!s_info.initialized) { + ErrPrint("Viewer is not initialized\n"); + return NULL; + } + if (!parent || !widget_id) { return NULL; } @@ -6222,6 +6255,10 @@ EAPI int widget_viewer_evas_set_view_port(Evas_Object *widget, int x, int y, int { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6239,6 +6276,10 @@ EAPI int widget_viewer_evas_get_view_port(Evas_Object *widget, int *x, int *y, i { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6265,6 +6306,8 @@ EAPI int widget_viewer_evas_get_view_port(Evas_Object *widget, int *x, int *y, i EAPI int widget_viewer_evas_set_option(widget_evas_conf_e type, int value) { + int ret = WIDGET_ERROR_NONE; + switch ((int)type) { case WIDGET_VIEWER_EVAS_SENSITIVE_MOVE: s_info.conf.field.sensitive_move = value; @@ -6315,16 +6358,21 @@ EAPI int widget_viewer_evas_set_option(widget_evas_conf_e type, int value) DbgPrint("Turn %s skip-acquire option\n", s_info.conf.field.skip_acquire ? "on" : "off"); break; default: + ret = WIDGET_ERROR_INVALID_PARAMETER; break; } - return WIDGET_ERROR_NONE; + return ret; } EAPI int widget_viewer_evas_pause_widget(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6341,6 +6389,10 @@ EAPI int widget_viewer_evas_resume_widget(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6358,6 +6410,10 @@ EAPI int widget_viewer_evas_destroy_glance_bar(Evas_Object *widget) struct widget_data *data; int ret; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data || data->state != WIDGET_DATA_CREATED || !data->is.field.created || !data->handle || !data->is.field.gbar_created) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6375,6 +6431,10 @@ EAPI const char *widget_viewer_evas_get_content_info(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return NULL; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return NULL; @@ -6387,6 +6447,10 @@ EAPI const char *widget_viewer_evas_get_title_string(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return NULL; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return NULL; @@ -6399,6 +6463,10 @@ EAPI const char *widget_viewer_evas_get_widget_id(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return NULL; + } + data = get_smart_data(widget); if (!data || data->state != WIDGET_DATA_CREATED) { return NULL; @@ -6411,6 +6479,10 @@ EAPI double widget_viewer_evas_get_period(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return 0.0f; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return 0.0f; @@ -6423,6 +6495,10 @@ EAPI void widget_viewer_evas_cancel_click_event(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return; @@ -6474,6 +6550,10 @@ EAPI int widget_viewer_evas_feed_mouse_up_event(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6492,6 +6572,10 @@ EAPI int widget_viewer_evas_feed_access_event(Evas_Object *widget, int type, voi int ret; struct widget_access_event_info ainfo; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data || !data->is.field.created || !data->handle) { return WIDGET_ERROR_INVALID_PARAMETER; @@ -6776,6 +6860,10 @@ EAPI void widget_viewer_evas_disable_preview(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6789,6 +6877,10 @@ EAPI void widget_viewer_evas_disable_overlay_text(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6802,6 +6894,10 @@ EAPI void widget_viewer_evas_disable_loading(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6815,6 +6911,10 @@ EAPI void widget_viewer_evas_activate_faulted_widget(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6832,6 +6932,10 @@ EAPI int widget_viewer_evas_is_faulted(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6903,6 +7007,10 @@ EAPI int widget_viewer_evas_freeze_visibility(Evas_Object *widget, widget_visibi { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6918,6 +7026,10 @@ EAPI int widget_viewer_evas_thaw_visibility(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6933,6 +7045,11 @@ EAPI int widget_viewer_evas_get_freeze_visibility(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + ErrPrint("Not initialized\n"); + return 0; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6947,6 +7064,10 @@ EAPI int widget_viewer_evas_dump_to_file(Evas_Object *widget, const char *filena struct widget_data *data; FILE *fp; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6977,6 +7098,10 @@ EAPI int widget_viewer_evas_is_widget(Evas_Object *widget) { struct widget_data *data; + if (!s_info.initialized) { + return 0; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -6990,6 +7115,10 @@ EAPI void widget_viewer_evas_set_permanent_delete(Evas_Object *widget, int flag) { struct widget_data *data; + if (!s_info.initialized) { + return; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -7005,6 +7134,10 @@ EAPI int widget_viewer_evas_subscribe_group(const char *cluster, const char *sub Eina_List *l; int ret; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + if (!cluster || !sub_cluster) { return WIDGET_ERROR_INVALID_PARAMETER; } @@ -7055,6 +7188,10 @@ EAPI int widget_viewer_evas_unsubscribe_group(const char *cluster, const char *s Eina_List *l; Eina_List *n; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + if (!cluster || !sub_cluster) { return WIDGET_ERROR_INVALID_PARAMETER; } @@ -7078,6 +7215,10 @@ EAPI int widget_viewer_evas_subscribe_category(const char *category) Eina_List *l; int ret; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + if (!category) { return WIDGET_ERROR_INVALID_PARAMETER; } @@ -7118,6 +7259,10 @@ EAPI int widget_viewer_evas_unsubscribe_category(const char *category) Eina_List *n; struct subscribe_category *item; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + if (!category) { return WIDGET_ERROR_INVALID_PARAMETER; } @@ -7143,6 +7288,10 @@ EAPI int widget_viewer_evas_emit_text_signal(Evas_Object *widget, widget_text_si { struct widget_data *widget_data_from_evas; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + widget_data_from_evas = get_smart_data(widget); if (!widget_data_from_evas) { @@ -7157,6 +7306,10 @@ EAPI int widget_viewer_evas_get_instance_id(Evas_Object *widget, char **instance { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); @@ -7170,6 +7323,10 @@ EAPI int widget_viewer_evas_set_widget_option(Evas_Object *widget, widget_option { struct widget_data *data; + if (!s_info.initialized) { + return WIDGET_ERROR_FAULT; + } + data = get_smart_data(widget); if (!data) { ErrPrint("Invalid object\n"); -- 2.34.1