[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17848] branches/blender2.5/blender/source /blender/editors/screen/area.c: Fix for memory leak and perhaps other issues on switching space types
Brecht Van Lommel
brecht at blender.org
Sun Dec 14 14:59:34 CET 2008
Revision: 17848
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17848
Author: blendix
Date: 2008-12-14 14:59:34 +0100 (Sun, 14 Dec 2008)
Log Message:
-----------
Fix for memory leak and perhaps other issues on switching space types
in an area, the handlers (UI and keymap) were not removed.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/screen/area.c
Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-12-14 13:55:31 UTC (rev 17847)
+++ branches/blender2.5/blender/source/blender/editors/screen/area.c 2008-12-14 13:59:34 UTC (rev 17848)
@@ -504,13 +504,18 @@
/* *********** Space switching code, local now *********** */
/* XXX make operator for this */
-static void newspace(ScrArea *sa, int type)
+static void newspace(bContext *C, ScrArea *sa, int type)
{
if(sa->spacetype != type) {
- SpaceType *st= BKE_spacetype_from_id(type);
- SpaceLink *slold= sa->spacedata.first;
+ SpaceType *st;
+ SpaceLink *slold;
SpaceLink *sl;
-
+
+ ED_area_exit(C, sa);
+
+ st= BKE_spacetype_from_id(type);
+ slold= sa->spacedata.first;
+
sa->spacetype= type;
sa->butspacetype= type;
@@ -594,7 +599,7 @@
static void spacefunc(struct bContext *C, void *arg1, void *arg2)
{
- newspace(C->area, C->area->butspacetype);
+ newspace(C, C->area, C->area->butspacetype);
WM_event_add_notifier(C, WM_NOTE_SCREEN_CHANGED, 0, NULL);
}
More information about the Bf-blender-cvs
mailing list