[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17041] trunk/blender/source/blender/ python/api2_2x/Window.c: in rare cases the screen cant be found for BPy' s file/image selector

Campbell Barton ideasman42 at gmail.com
Sun Oct 12 13:31:15 CEST 2008


Revision: 17041
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17041
Author:   campbellbarton
Date:     2008-10-12 13:31:11 +0200 (Sun, 12 Oct 2008)

Log Message:
-----------
in rare cases the screen cant be found for BPy's file/image selector

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Window.c

Modified: trunk/blender/source/blender/python/api2_2x/Window.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Window.c	2008-10-12 11:13:35 UTC (rev 17040)
+++ trunk/blender/source/blender/python/api2_2x/Window.c	2008-10-12 11:31:11 UTC (rev 17041)
@@ -577,8 +577,6 @@
 			"\nexpected a callback function (and optionally one or two strings) "
 			"as argument(s)" );
 
-	Py_INCREF(pycallback);
-
 /* trick: we move to a spacescript because then the fileselector will properly
  * unset our SCRIPT_FILESEL flag when the user chooses a file or cancels the
  * selection.  This is necessary because when a user cancels, the
@@ -605,9 +603,18 @@
 		script->lastspace = startspace;
 		sc->script = script;
 	}
-
+	
+	if (!script) {
+		/* should never happen unless we are executed
+		* from the BGE or somthing really strange like that */
+		return EXPP_ReturnPyObjError( PyExc_AttributeError,
+			"Could not allocate a screen for an unknown reason." );
+	}
+	
+	Py_INCREF(pycallback);
+	
 	script->flags |= SCRIPT_FILESEL;
-
+	
 	/* clear any previous callback (nested calls to selector) */
 	if (script->py_browsercallback) {
 		Py_DECREF((PyObject *)script->py_browsercallback);





More information about the Bf-blender-cvs mailing list