app->instances = g_list_remove(app->instances, instance);
if (app->instances == NULL) {
_widget_apps = g_list_remove(_widget_apps, app);
+ if (app->widget_id)
+ free(app->widget_id);
+ if (app->viewer_id)
+ free(app->viewer_id);
free(app);
- app = NULL;
}
}
EAPI int widget_instance_fini()
{
+ if (lifecycle_tbl) {
+ g_hash_table_destroy(lifecycle_tbl);
+ lifecycle_tbl = NULL;
+ }
if (conn_viewer) {
if (aul_app_com_leave(conn_viewer) < 0)
viewer_appid = NULL;
}
+ if (package_id) {
+ free(package_id);
+ package_id = NULL;
+ }
+
return 0;
}
return -1;
}
+static void __destroy_lifecycle_local(gpointer data)
+{
+ struct lifecycle_local_s *cb_info = (struct lifecycle_local_s *)data;
+
+ if (cb_info == NULL)
+ return;
+
+ if (cb_info->widget_id)
+ free(cb_info->widget_id);
+ free(cb_info);
+}
+
/* within package only */
EAPI int widget_instance_listen_status(const char *widget_id, widget_instance_event_cb cb, void *data)
{
cb_info->cb = cb;
cb_info->data = data;
if (!lifecycle_tbl) {
- lifecycle_tbl = g_hash_table_new(g_str_hash, g_str_equal);
+ lifecycle_tbl = g_hash_table_new_full(g_str_hash, g_str_equal, NULL,
+ __destroy_lifecycle_local);
if (!lifecycle_tbl) {
free(cb_info);
return -1;
return -1;
g_hash_table_remove(lifecycle_tbl, widget_id);
- free(cb_info->widget_id);
- free(cb_info);
return 0;
}
dic = iniparser_load(file_path);
if (dic == NULL) {
_E("fail to load [%s] ", file_path);
+ free(file_path);
return WIDGET_ERROR_IO_ERROR;
}
+ free(file_path);
snprintf(key_format, sizeof(key_format), "%s:%s",
RESOLUTION_SECTION_NAME, RESOLUTION_FORMAT);
key_num = iniparser_getsecnkeys(dic, RESOLUTION_SECTION_NAME);
_E("failed to convert size");
free(width);
free(height);
+ sqlite3_finalize(stmt);
+ sqlite3_close_v2(db);
return WIDGET_ERROR_FAULT;
}
*w = width;
if (item == NULL) {
/* LCOV_EXCL_START */
_E("out of memory");
+ sqlite3_finalize(stmt);
+ sqlite3_close_v2(db);
return WIDGET_ERROR_OUT_OF_MEMORY;
/* LCOV_EXCL_STOP */
}
ret = aul_widget_instance_get_content(widget_id, widget_instance_id, &raw);
if (raw) {
*b = bundle_decode((const bundle_raw *)raw, strlen(raw));
+ free(raw);
return WIDGET_ERROR_NONE;
}