Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-03-31 17:58:15 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-03-31 18:01:02 +0300
commit7ee340c0b43c89c157264bb723b01dff5c6005b4 (patch)
tree9d0790c788e9ceb218730e670b437b781e84e7a5 /source/blender/editors/screen/screen_edit.c
parent79918e05773132ce1f96c90b555348229ddfcf73 (diff)
Fix writing freed memory, exiting full view
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r--source/blender/editors/screen/screen_edit.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index aadfa9e6608..e1c414b0031 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;