return 1;
}
+/* not listbase itself */
void folderlist_free(ListBase* folderlist)
{
FolderList *folder;
if (folderlist){
- for(folder= folderlist->last; folder; folder= folderlist->last) {
- MEM_freeN(folder->foldername);
- BLI_freelinkN(folderlist, folder);
- }
+ for(folder= folderlist->first; folder; folder= folder->next)
+ MEM_freeN(folder->foldername);
+ BLI_freelistN(folderlist);
}
folderlist= NULL;
}
+ListBase *folderlist_duplicate(ListBase* folderlist)
+{
+
+ if (folderlist) {
+ ListBase *folderlistn= MEM_callocN(sizeof(ListBase), "copy folderlist");
+ FolderList *folder;
+
+ BLI_duplicatelist(folderlistn, folderlist);
+
+ for(folder= folderlistn->first; folder; folder= folder->next) {
+ folder->foldername= MEM_dupallocN(folder->foldername);
+ }
+ return folderlistn;
+ }
+ return NULL;
+}
+
+
static void filelist_read_main(struct FileList* filelist);
static void filelist_read_library(struct FileList* filelist);
static void filelist_read_dir(struct FileList* filelist);
filelist->filelist[i].image = 0;
if (filelist->filelist[i].relname)
MEM_freeN(filelist->filelist[i].relname);
+ if (filelist->filelist[i].path)
+ MEM_freeN(filelist->filelist[i].path);
filelist->filelist[i].relname = 0;
if (filelist->filelist[i].string)
MEM_freeN(filelist->filelist[i].string);