[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17795] branches/blender2.5/blender/source /blender: 2.5 - Fixed crashes when closing windows
Joshua Leung
aligorith at gmail.com
Fri Dec 12 00:05:18 CET 2008
Revision: 17795
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17795
Author: aligorith
Date: 2008-12-12 00:05:18 +0100 (Fri, 12 Dec 2008)
Log Message:
-----------
2.5 - Fixed crashes when closing windows
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c 2008-12-11 23:02:33 UTC (rev 17794)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c 2008-12-11 23:05:18 UTC (rev 17795)
@@ -164,15 +164,19 @@
/* don't free screen itself */
void free_screen(bScreen *sc)
{
- ScrArea *sa;
- ARegion *ar;
+ ScrArea *sa, *san;
+ ARegion *ar, *arn;
- for(ar=sc->regionbase.first; ar; ar=ar->next)
+ for(ar=sc->regionbase.first; ar; ar=arn) {
+ arn= ar->next;
BKE_area_region_free(ar);
+ }
BLI_freelistN(&sc->regionbase);
- for(sa= sc->areabase.first; sa; sa= sa->next)
+ for(sa= sc->areabase.first; sa; sa= san) {
+ san= sa->next;
BKE_screen_area_free(sa);
+ }
BLI_freelistN(&sc->vertbase);
BLI_freelistN(&sc->edgebase);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2008-12-11 23:02:33 UTC (rev 17794)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2008-12-11 23:05:18 UTC (rev 17795)
@@ -3530,17 +3530,21 @@
static void ui_handler_remove_region(bContext *C)
{
+ bScreen *sc;
ARegion *ar;
ar= C->region;
- if(ar==NULL) return;
+ if(ar == NULL) return;
uiFreeBlocks(C, &ar->uiblocks);
+
+ sc= C->screen;
+ if(sc == NULL) return;
/* delayed apply callbacks, but not for screen level regions, those
* we rather do at the very end after closing them all, which will
* be done in ui_handler_region/window */
- if(BLI_findindex(&C->screen->regionbase, ar) == -1)
+ if(BLI_findindex(&sc->regionbase, ar) == -1)
ui_apply_but_funcs_after(C);
}
More information about the Bf-blender-cvs
mailing list