diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-08-14 16:29:55 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-08-14 16:29:55 +0400 |
commit | 08f0938434598b23d0dd1879f598e342a194cb63 (patch) | |
tree | 24534061675641b9efab5e69508ac9bde30b5efa /source/blender/windowmanager | |
parent | 4bbccd39bc827e5d794bdbe987b4d48164e8d950 (diff) |
- registering new python classes runs the free functions on existing classes.
- print an error if RNA Structs are freed with a python pointer set to help with debugging leaks.
- fix for unlikely eternal loop in unit conversion.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_init_exit.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c index 57e028670e7..c679cbcab53 100644 --- a/source/blender/windowmanager/intern/wm_init_exit.c +++ b/source/blender/windowmanager/intern/wm_init_exit.c @@ -208,12 +208,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! */ wm_free_reports(C); /* before free_blender! - since the ListBases get freed there */ @@ -233,6 +227,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 @@ -256,7 +262,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(); |