media_svc_retvm_if(!table_query, MS_MEDIA_ERR_INTERNAL, "g_string_new failed");
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
if (col_ptr->is_view) {
if (table_query->len != 0) {
}
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
if (col_ptr->is_view) {
if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
}
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
if (col_ptr->is_view)
g_string_append_printf(table_query, ", media.%s", col_ptr->name);
media_svc_retvm_if(!table_query, MS_MEDIA_ERR_INTERNAL, "g_string_new failed");
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
if (col_ptr->is_view) {
if (table_query->len != 0)
}
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
if (col_ptr->is_view) {
if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
}
len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
if (col_ptr->is_view)
g_string_append_printf(table_query, ", media.%s", col_ptr->name);
goto ERROR;
}
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[list], i);
/*create table */
if (col_ptr->has_option) {
SQLITE3_FINALIZE(sql_stmt);
len = g_slist_length(column_list[list]);
- for (i = 1; i < len; i++) {
+ for (i = 0; i < len; i++) {
col_ptr = g_slist_nth_data(column_list[list], i);
if (col_ptr->version > cur_version) {
/*alter table */
return MS_MEDIA_ERR_NONE;
}
+static void __media_svc_table_free(gpointer data)
+{
+ table_info_s *tb = (table_info_s *) data;
+ SAFE_FREE(tb->trigger_name);
+ SAFE_FREE(tb->view_name);
+ SAFE_FREE(tb->event_table);
+ SAFE_FREE(tb->action_table);
+ SAFE_FREE(tb);
+}
+
+static void __media_svc_column_free(gpointer data)
+{
+ column_info_s *col = (column_info_s *) data;
+
+ /* Item in slist can be null */
+ if (!col)
+ return;
+
+ SAFE_FREE(col->name);
+ SAFE_FREE(col->type);
+ SAFE_FREE(col->option);
+ SAFE_FREE(col->index_name);
+ SAFE_FREE(col);
+}
+
int _media_svc_init_table_query(const char *event_table_name)
{
int ret = MS_MEDIA_ERR_NONE;
- int i = 0;
/*variable initialize.. */
- table = g_hash_table_new(g_str_hash, g_str_equal);
- for (i = 0; i < MEDIA_SVC_DB_LIST_MAX; i++)
- column_list[i] = g_slist_alloc();
+ table = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, __media_svc_table_free);
/*table specification.. (table_name, index, unique set, trigger, view, trigger name, event table, action table, view name) */
ret = __media_svc_add_table_info(MEDIA_SVC_DB_TABLE_MEDIA, NULL, NULL, NULL, NULL);
return ret;
}
-void __media_svc_table_free(table_info_s *tb)
-{
- SAFE_FREE(tb->trigger_name);
- SAFE_FREE(tb->view_name);
- SAFE_FREE(tb->event_table);
- SAFE_FREE(tb->action_table);
- SAFE_FREE(tb);
-}
-
-void __media_svc_column_free(column_info_s *col)
-{
- SAFE_FREE(col->name);
- SAFE_FREE(col->type);
- SAFE_FREE(col->option);
- SAFE_FREE(col->index_name);
- SAFE_FREE(col);
-}
void _media_svc_destroy_table_query()
{
int i = 0;
- table_info_s *tb = NULL;
- column_info_s *col_ptr = NULL;
- int len = 0;
/* Table Free */
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_MEDIA);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_MEDIA);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_FOLDER);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_FOLDER);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_PLAYLIST);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_PLAYLIST);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_PLAYLIST_MAP);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_ALBUM);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_ALBUM);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_TAG);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_TAG);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_TAG_MAP);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_TAG_MAP);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_BOOKMARK);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_BOOKMARK);
-
- tb = g_hash_table_lookup(table, MEDIA_SVC_DB_TABLE_STORAGE);
- __media_svc_table_free(tb);
- g_hash_table_remove(table, MEDIA_SVC_DB_TABLE_STORAGE);
-
g_hash_table_destroy(table);
/* Column Free */
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_FOLDER]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_FOLDER], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_ALBUM]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_ALBUM], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_BOOKMARK]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_BOOKMARK], i);
- __media_svc_column_free(col_ptr);
- }
-
- len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_STORAGE]);
-
- for (i = 1; i < len; i++) {
- col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_STORAGE], i);
- __media_svc_column_free(col_ptr);
- }
-
for (i = 0; i < MEDIA_SVC_DB_LIST_MAX; i++)
- g_slist_free(column_list[i]);
-
+ g_slist_free_full(column_list[i], __media_svc_column_free);
}
static int __alter_table(sqlite3 *db_handle, uid_t uid)