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);
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);
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;
}
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;
}