Change the traversal method 02/222802/3
authorMinje Ahn <minje.ahn@samsung.com>
Mon, 20 Jan 2020 06:33:07 +0000 (15:33 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Tue, 21 Jan 2020 02:13:38 +0000 (11:13 +0900)
Use next instead of nth_data

Change-Id: Id25fe72122a5812b420f247ed42e2f34401ae519
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/media-svc-db-utils.c

index 11cd2f1..814cb81 100755 (executable)
@@ -116,16 +116,18 @@ int __media_svc_add_column_info(GSList **slist, const char *name, const char *ty
 static int __create_playlist_view(uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
+       GSList *iter = NULL;
        column_info_s *col_ptr = NULL;
-       int len = 0;
-       int i = 0;
        char *sql = NULL;
        GString *table_query = g_string_new(NULL);
        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 = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_PLAYLIST]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view) {
                        if (table_query->len != 0) {
                                if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_THUMBNAIL, strlen(MEDIA_SVC_DB_COLUMN_THUMBNAIL)) == 0)
@@ -138,9 +140,12 @@ static int __create_playlist_view(uid_t uid)
                }
        }
 
-       len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]);
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_PLAYLIST_MAP]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view) {
                        if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                g_string_append_printf(table_query, ", playlist_media_count IS NOT NULL AS playlist_media_count, playlist_map.%s AS pm_id", col_ptr->name);
@@ -149,9 +154,12 @@ static int __create_playlist_view(uid_t uid)
                }
        }
 
-       len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_MEDIA]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view)
                        g_string_append_printf(table_query, ", media.%s", col_ptr->name);
        }
@@ -167,16 +175,18 @@ static int __create_playlist_view(uid_t uid)
 static int __create_tag_view(uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
+       GSList *iter = NULL;
        column_info_s *col_ptr = NULL;
-       int len = 0;
-       int i = 0;
        char *sql = NULL;
        GString *table_query = g_string_new(NULL);
        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 = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_TAG]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view) {
                        if (table_query->len != 0)
                                g_string_append_printf(table_query, ", tag.%s", col_ptr->name);
@@ -185,9 +195,12 @@ static int __create_tag_view(uid_t uid)
                }
        }
 
-       len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_TAG_MAP]);
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_TAG_MAP], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_TAG_MAP]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view) {
                        if (strncmp(col_ptr->name, MEDIA_SVC_DB_COLUMN_MAP_ID, strlen(MEDIA_SVC_DB_COLUMN_MAP_ID)) == 0)
                                g_string_append_printf(table_query, ", tag_media_count IS NOT NULL AS tag_media_count, tag_map.%s AS tm_id", col_ptr->name);
@@ -196,9 +209,12 @@ static int __create_tag_view(uid_t uid)
                }
        }
 
-       len = g_slist_length(column_list[MEDIA_SVC_DB_LIST_MEDIA]);
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[MEDIA_SVC_DB_LIST_MEDIA], i);
+       for (iter = column_list[MEDIA_SVC_DB_LIST_MEDIA]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->is_view)
                        g_string_append_printf(table_query, ", media.%s", col_ptr->name);
        }
@@ -242,6 +258,7 @@ static int __media_svc_rebuild_view_query(sqlite3 *db_handle, uid_t uid)
 int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e list, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
+       GSList *iter = NULL;
        table_info_s *tb = NULL;
        column_info_s *col_ptr = NULL;
        char *sql = NULL;
@@ -249,8 +266,6 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
        GString *index_query = g_string_new(NULL);
        GString *trigger_query = g_string_new(NULL);
        GString *unique_query = g_string_new(NULL);
-       int len = 0;
-       int i = 0;
 
        if (!table_query || !index_query || !trigger_query || !unique_query) {
                media_svc_error("g_string_new failed");
@@ -265,15 +280,11 @@ int _media_svc_make_table_query(const char *table_name, media_svc_table_slist_e
                goto ERROR;
        }
 
-       len = g_slist_length(column_list[list]);
-       if (len == 0) {
-               media_svc_error("Invalid column");
-               ret = MS_MEDIA_ERR_INTERNAL;
-               goto ERROR;
-       }
+       for (iter = column_list[list]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+               if (!col_ptr)
+                       continue;
 
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[list], i);
                /*create table */
                if (col_ptr->has_option) {
                        if (table_query->len != 0)
@@ -357,15 +368,13 @@ ERROR:
 static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table_name, media_svc_table_slist_e list, uid_t uid)
 {
        int ret = MS_MEDIA_ERR_NONE;
+       GSList *iter = NULL;
        column_info_s *col_ptr = NULL;
        char *sql = NULL;
        char temp[1024] = {0, };
-       int len, i;
        int cur_version = 0;
        sqlite3_stmt *sql_stmt = NULL;
 
-       len = g_slist_length(column_list[list]);
-
        sql = sqlite3_mprintf("PRAGMA user_version");
        ret = _media_svc_sql_prepare_to_step(db_handle, sql, &sql_stmt);
 
@@ -376,11 +385,15 @@ static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table
        cur_version = sqlite3_column_int(sql_stmt, 0);
        SQLITE3_FINALIZE(sql_stmt);
 
-       len = g_slist_length(column_list[list]);
-       for (i = 0; i < len; i++) {
-               col_ptr = g_slist_nth_data(column_list[list], i);
+       for (iter = column_list[list]; iter; iter = g_slist_next(iter)) {
+               col_ptr = iter->data;
+
+               if (!col_ptr)
+                       continue;
+
                if (col_ptr->version > cur_version) {
                        /*alter table */
+                       memset(temp, 0, sizeof(temp));
                        if (col_ptr->has_option)
                                snprintf(temp, sizeof(temp), "%s %s %s", col_ptr->name, col_ptr->type, col_ptr->option);
                        else
@@ -391,13 +404,12 @@ static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table
                        media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
                        /*create index */
                        if (col_ptr->is_index) {
-                               memset(temp, 0, sizeof(temp));
-                               snprintf(temp, sizeof(temp), MEDIA_SVC_DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
-                               ret = _media_svc_sql_query(temp, uid);
+                               sql = sqlite3_mprintf(MEDIA_SVC_DB_QUERY_INDEX, col_ptr->index_name, table_name, col_ptr->name);
+                               ret = _media_svc_sql_query(sql, uid);
+                               SQLITE3_SAFE_FREE(sql);
                                media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret);
                        }
                }
-               memset(temp, 0, sizeof(temp));
        }
 
        return MS_MEDIA_ERR_NONE;
@@ -406,6 +418,7 @@ static int __media_svc_upgrade_table_query(sqlite3 *db_handle, const char *table
 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);
@@ -417,10 +430,6 @@ 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);