svn merge -r 22371:22571 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
[blender-staging.git] / source / blender / windowmanager / intern / wm_init_exit.c
index aaa38cee7d8e300382fb1ccfb2ec5f6684b1102e..46786b159c07206593f311cd269bf2ce464ebd2a 100644 (file)
@@ -144,8 +144,6 @@ void WM_init(bContext *C)
        
        read_Blog();
        BLI_strncpy(G.lib, G.sce, FILE_MAX);
-
-       sound_init();
 }
 
 /* free strings of open recent files */
@@ -208,12 +206,6 @@ void WM_exit(bContext *C)
        
        BKE_freecubetable();
        
-       /* before free_blender so py's gc happens while library still exists */
-       /* needed at least for a rare sigsegv that can happen in pydrivers */
-#ifndef DISABLE_PYTHON
-       BPY_end_python();
-#endif
-       
        fastshade_free_render();        /* shaded view */
        ED_preview_free_dbase();        /* frees a Main dbase, before free_blender! */
 
@@ -236,6 +228,18 @@ void WM_exit(bContext *C)
        
 //     free_txt_data();
        
+
+#ifndef DISABLE_PYTHON
+       /* XXX - old note */
+       /* before free_blender so py's gc happens while library still exists */
+       /* needed at least for a rare sigsegv that can happen in pydrivers */
+
+       /* Update for blender 2.5, move after free_blender because blender now holds references to PyObject's
+        * so decref'ing them after python ends causes bad problems every time
+        * the pyDriver bug can be fixed if it happens again we can deal with it then */
+       BPY_end_python();
+#endif
+
        libtiff_exit();
        
 #ifdef WITH_QUICKTIME
@@ -259,7 +263,7 @@ void WM_exit(bContext *C)
        UI_exit();
        BKE_userdef_free();
 
-       RNA_exit();
+       RNA_exit(); /* should be after BPY_end_python so struct python slots are cleared */
        
        wm_ghost_exit();