Use GPtrArray in ms_get_null_scan_folder_list() 86/240386/1
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 6 Aug 2020 03:55:34 +0000 (12:55 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 6 Aug 2020 03:55:34 +0000 (12:55 +0900)
Change-Id: Idb96498417e447a8703aebbd51969638d23ff4b2
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/include/media-common-db-svc.h
src/common/media-common-db-svc.c
src/scanner-v2/media-scanner-scan-v2.c

index 5f6a413..21d67d2 100755 (executable)
@@ -53,7 +53,7 @@ typedef int (*INSERT_ITEM_SCAN)(sqlite3 *, const char *, const char *, int, uid_
 typedef int (*GET_FOLDER_SCAN_STATUS)(sqlite3 *, const char *, const char *, int *);
 typedef int (*SET_FOLDER_SCAN_STATUS)(sqlite3 *, const char *, const char *, int, uid_t);
 typedef int (*CHECK_FOLDER_MODIFIED)(sqlite3 *, const char *, const char *, bool *);
-typedef int (*GET_NULL_SCAN_FOLDER_LIST)(sqlite3 *, const char *, const char *, char ***, int *);
+typedef int (*GET_NULL_SCAN_FOLDER_LIST)(sqlite3 *, const char *, const char *, GPtrArray **);
 typedef int (*CHANGE_VALIDITY_ITEM_BATCH)(sqlite3 *, const char *, const char *, int, int, uid_t);
 
 typedef int (*CHECK_DB)(sqlite3*, uid_t);
@@ -95,7 +95,7 @@ int ms_scan_validate_item(sqlite3 *handle, const char *storage_id, const char *p
 int ms_get_folder_scan_status(sqlite3 *handle, const char *storage_id, const char *path, int *scan_status);
 int ms_set_folder_scan_status(sqlite3 *handle, const char *storage_id, const char *path, int scan_status, uid_t uid);
 int ms_check_folder_modified(sqlite3 *handle, const char *path, const char *storage_id, bool *modified);
-int ms_get_null_scan_folder_list(sqlite3 *handle, const char *stroage_id, const char *path, GArray **dir_array);
+int ms_get_null_scan_folder_list(sqlite3 *handle, const char *stroage_id, const char *path, GPtrArray **dir_array);
 int ms_change_validity_item_batch(sqlite3 *handle, const char *storage_id, const char *path, int des_validity, int src_validity, uid_t uid);
 
 int ms_check_db_upgrade(sqlite3 *handle, uid_t uid);
index 71b0d8b..12cfe3a 100644 (file)
@@ -745,24 +745,13 @@ int ms_check_folder_modified(sqlite3 *handle, const char *path, const char *stor
        return ret;
 }
 
-int ms_get_null_scan_folder_list(sqlite3 *handle, const char *stroage_id, const char *path, GArray **dir_array)
+int ms_get_null_scan_folder_list(sqlite3 *handle, const char *stroage_id, const char *path, GPtrArray **dir_array)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char **folder_list = NULL;
-       int count = 0;
-       int i = 0;
 
-       ret = ((GET_NULL_SCAN_FOLDER_LIST)func_array[eGET_NULL_SCAN_FOLDER_LIST])(handle, stroage_id, path, &folder_list, &count); /*dlopen*/
+       ret = ((GET_NULL_SCAN_FOLDER_LIST)func_array[eGET_NULL_SCAN_FOLDER_LIST])(handle, stroage_id, path, dir_array); /*dlopen*/
        MS_DBG_RETVM_IF(ret != MS_MEDIA_ERR_NONE, ret, "GET_NULL_SCAN_FOLDER_LIST failed [%d]", ret);
 
-       *dir_array = g_array_sized_new(FALSE, FALSE, sizeof(char*), count);
-
-       for (i = 0; i < count; i++)
-               g_array_append_val(*dir_array, folder_list[i]);
-
-
-       MS_SAFE_FREE(folder_list);
-
        return ret;
 }
 
index 3c18d69..d2ca940 100644 (file)
@@ -790,24 +790,14 @@ EXIT:
 static int __msc_get_null_scan_folder_list(sqlite3 *handle, const char *stroage_id, char *path, GPtrArray *dir_array)
 {
        int ret = MS_MEDIA_ERR_NONE;
-       char *current_path = NULL;
-       GArray *cur_dir_array = NULL;
+       GPtrArray *cur_dir_array = NULL;
 
        ret = ms_get_null_scan_folder_list(handle, stroage_id, path, &cur_dir_array);
-
        if (ret == MS_MEDIA_ERR_NONE) {
                MS_DBG_WARN("cur_dir_array->len = [%d]", cur_dir_array->len);
-               while (cur_dir_array->len != 0) {
-                       current_path = g_array_index(cur_dir_array , char *, 0);
-                       g_array_remove_index(cur_dir_array, 0);
-                       MS_DBG_SLOG("current_path = [%s]", current_path);
-
-                       g_ptr_array_add(dir_array, current_path);
-               }
+               g_ptr_array_extend_and_steal(dir_array, cur_dir_array);
        }
 
-       g_array_free(cur_dir_array, FALSE);
-
        return ret;
 }