diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-18 22:41:36 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-18 22:41:36 +0300 |
commit | 93cc4629e35e85a05c556cabd5b4d2af6a6cf072 (patch) | |
tree | 093e7e1274dbd94590f8548426def75bd7909135 /source/blender/editors/screen | |
parent | af746acaad8fcfb289e6e56e9199c5b492429934 (diff) |
2.5: fix for crashes due to access to free'd memory in joining areas,
ripping areas and duplicating windows.
Diffstat (limited to 'source/blender/editors/screen')
-rw-r--r-- | source/blender/editors/screen/screen_ops.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c index 4514d54e317..2342d5c2e8b 100644 --- a/source/blender/editors/screen/screen_ops.c +++ b/source/blender/editors/screen/screen_ops.c @@ -264,7 +264,7 @@ static int screen_area_rip_op(bContext *C, wmOperator *op) /* allocs new screen and adds to newly created window, using window size */ newsc= screen_add(newwin, sc->id.name+2); - win->screen= newsc; + newwin->screen= newsc; /* copy area to new screen */ area_copy_data((ScrArea *)newsc->areabase.first, sa, 0); @@ -767,6 +767,7 @@ static int area_split_cancel(bContext *C, wmOperator *op) if (screen_area_join(C, CTX_wm_screen(C), sd->sarea, sd->narea)) { if (CTX_wm_area(C) == sd->narea) { CTX_wm_area_set(C, NULL); + CTX_wm_region_set(C, NULL); } sd->narea = NULL; } @@ -1018,6 +1019,7 @@ static int area_join_apply(bContext *C, wmOperator *op) } if (CTX_wm_area(C) == jd->sa2) { CTX_wm_area_set(C, NULL); + CTX_wm_region_set(C, NULL); } return 1; |