[Bf-blender-cvs] [7ee340c] master: Fix writing freed memory, exiting full view

Campbell Barton noreply at git.blender.org
Tue Mar 31 17:01:23 CEST 2015


Commit: 7ee340c0b43c89c157264bb723b01dff5c6005b4
Author: Campbell Barton
Date:   Wed Apr 1 01:58:15 2015 +1100
Branches: master
https://developer.blender.org/rB7ee340c0b43c89c157264bb723b01dff5c6005b4

Fix writing freed memory, exiting full view

===================================================================

M	source/blender/editors/screen/screen_edit.c

===================================================================

diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index aadfa9e..e1c414b 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1765,6 +1765,7 @@ void ED_screen_full_prevspace(bContext *C, ScrArea *sa)
 	if (sa->flag & AREA_FLAG_STACKED_FULLSCREEN) {
 		/* stacked fullscreen -> only go back to previous screen and don't toggle out of fullscreen */
 		ED_area_prevspace(C, sa);
+		sa->flag &= ~AREA_FLAG_TEMP_TYPE;
 	}
 	else {
 		ED_screen_restore_temp_type(C, sa);
@@ -1804,8 +1805,7 @@ void ED_screen_full_restore(bContext *C, ScrArea *sa)
 		else {
 			ED_screen_state_toggle(C, win, sa, state);
 		}
-
-		sa->flag &= ~AREA_FLAG_TEMP_TYPE;
+		/* warning: 'sa' may be freed */
 	}
 	/* otherwise just tile the area again */
 	else {
@@ -1813,7 +1813,11 @@ void ED_screen_full_restore(bContext *C, ScrArea *sa)
 	}
 }
 
-/* this function toggles: if area is maximized/full then the parent will be restored */
+/**
+ * this function toggles: if area is maximized/full then the parent will be restored
+ *
+ * \warning \a sa may be freed.
+ */
 ScrArea *ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *sa, const short state)
 {
 	bScreen *sc, *oldscreen;




More information about the Bf-blender-cvs mailing list