summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunghoon Park <jh9216.park@samsung.com>2017-09-26 17:52:55 +0900
committerJunghoon Park <jh9216.park@samsung.com>2017-09-26 20:28:46 +0900
commit9d143f53708c28c91fe9a308306164b1c961cf19 (patch)
treee92a2d5946d8ca332041ebeb84243e498b616967
parentc9d27c59f01297409fe3ddd40374c14a03e837ab (diff)
downloadappcore-widget-9d143f53708c28c91fe9a308306164b1c961cf19.tar.gz
appcore-widget-9d143f53708c28c91fe9a308306164b1c961cf19.tar.bz2
appcore-widget-9d143f53708c28c91fe9a308306164b1c961cf19.zip
Fix static analysis issue
- Fix 'resource leak' - Fix 'Uninitialized scalar variable' - Fix 'Dereference null return value' Change-Id: I70231bcc28287b8da2a999f8e0931670af6e464d Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
-rw-r--r--src/base/widget_base.c1
-rw-r--r--src/efl_base/widget_app.c15
2 files changed, 16 insertions, 0 deletions
diff --git a/src/base/widget_base.c b/src/base/widget_base.c
index e43635d..1843061 100644
--- a/src/base/widget_base.c
+++ b/src/base/widget_base.c
@@ -1600,6 +1600,7 @@ EXPORT_API widget_base_class widget_base_class_get_default(void)
cls.ops.destroy = __class_on_destroy;
cls.ops.pause = __class_on_pause;
cls.ops.resume = __class_on_resume;
+ cls.id = NULL;
return cls;
}
diff --git a/src/efl_base/widget_app.c b/src/efl_base/widget_app.c
index 640dca2..6197b31 100644
--- a/src/efl_base/widget_app.c
+++ b/src/efl_base/widget_app.c
@@ -51,6 +51,8 @@ struct app_class_cb_info {
void *user_data;
};
+static GList *__class_data_list;
+
static int __class_resize(widget_base_instance_h instance_h, int w, int h,
void *class_data)
{
@@ -62,6 +64,13 @@ static int __class_resize(widget_base_instance_h instance_h, int w, int h,
widget_base_class_on_resize(instance_h, w, h);
data = (struct instance_data *)
widget_base_context_get_user_data(instance_h);
+
+ if (!data) {
+ _E("widget_base_context_get_user_data() returns null");
+
+ return -1;
+ }
+
if (data->win)
evas_object_resize(data->win, w, h);
else
@@ -253,6 +262,11 @@ EXPORT_API int widget_app_main(int argc, char **argv,
cb_info.user_data = user_data;
r = widget_base_init(ops, argc, argv, &cb_info);
+ if (__class_data_list) {
+ g_list_free_full(__class_data_list, free);
+ __class_data_list = NULL;
+ }
+
widget_base_fini();
return r;
@@ -428,6 +442,7 @@ EXPORT_API widget_class_h widget_app_class_add(widget_class_h widget_class,
return NULL;
}
+ __class_data_list = g_list_append(__class_data_list, callback_data);
set_last_result(WIDGET_ERROR_NONE);
return wc;