[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36321] trunk/blender/source/blender/ editors: fix for a crash with the following steps.

Campbell Barton ideasman42 at gmail.com
Mon Apr 25 11:28:52 CEST 2011


Revision: 36321
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36321
Author:   campbellbarton
Date:     2011-04-25 09:28:52 +0000 (Mon, 25 Apr 2011)
Log Message:
-----------
fix for a crash with the following steps.
- open file sel
- save user defaults
- new file
- ctrl+u (crash)

wasn't type checking the space file, passed info space to ED_fileselect_exit().

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/screen_edit.c
    trunk/blender/source/blender/editors/space_file/file_ops.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_file/filesel.c

Modified: trunk/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_edit.c	2011-04-25 06:44:43 UTC (rev 36320)
+++ trunk/blender/source/blender/editors/screen/screen_edit.c	2011-04-25 09:28:52 UTC (rev 36321)
@@ -1133,7 +1133,10 @@
 	ARegion *ar;
 
 	if (sa->spacetype == SPACE_FILE) {
-		ED_fileselect_exit(C, (SpaceFile*)(sa) ? sa->spacedata.first : CTX_wm_space_data(C));
+		SpaceLink *sl= sa->spacedata.first;
+		if(sl->spacetype == SPACE_FILE) {
+			ED_fileselect_exit(C, (SpaceFile *)sl);
+		}
 	}
 
 	CTX_wm_area_set(C, sa);

Modified: trunk/blender/source/blender/editors/space_file/file_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_ops.c	2011-04-25 06:44:43 UTC (rev 36320)
+++ trunk/blender/source/blender/editors/space_file/file_ops.c	2011-04-25 09:28:52 UTC (rev 36321)
@@ -854,7 +854,7 @@
 		folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
 		folderlist_popdir(sfile->folders_next, sfile->params->dir);
 
-		// update folder_prev so we can check for it in folderlist_clear_next()
+		// update folders_prev so we can check for it in folderlist_clear_next()
 		folderlist_pushdir(sfile->folders_prev, sfile->params->dir);
 
 		file_change_dir(C, 1);

Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filelist.c	2011-04-25 06:44:43 UTC (rev 36320)
+++ trunk/blender/source/blender/editors/space_file/filelist.c	2011-04-25 09:28:52 UTC (rev 36321)
@@ -469,13 +469,12 @@
 /* not listbase itself */
 void folderlist_free(ListBase* folderlist)
 {
-	FolderList *folder;
 	if (folderlist){
+		FolderList *folder;
 		for(folder= folderlist->first; folder; folder= folder->next)
 			MEM_freeN(folder->foldername);
 		BLI_freelistN(folderlist);
 	}
-	folderlist= NULL;
 }
 
 ListBase *folderlist_duplicate(ListBase* folderlist)

Modified: trunk/blender/source/blender/editors/space_file/filesel.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filesel.c	2011-04-25 06:44:43 UTC (rev 36320)
+++ trunk/blender/source/blender/editors/space_file/filesel.c	2011-04-25 09:28:52 UTC (rev 36321)
@@ -655,9 +655,10 @@
 void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile)
 {
 	if(!sfile) return;
-	if(sfile->op)
+	if(sfile->op) {
 		WM_event_fileselect_event(C, sfile->op, EVT_FILESELECT_EXTERNAL_CANCEL);
-	sfile->op = NULL;
+		sfile->op = NULL;
+	}
 
 	folderlist_free(sfile->folders_prev);
 	folderlist_free(sfile->folders_next);




More information about the Bf-blender-cvs mailing list