diff options
author | Ton Roosendaal <ton@blender.org> | 2006-11-17 15:44:15 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-11-17 15:44:15 +0300 |
commit | 6b9bf57066a0ee24902a13f5a371eb711bb7b86a (patch) | |
tree | 30c80347477e8ab7500a0a10e9761b0232b57080 /source/blender/src/editscreen.c | |
parent | 414b918010e19516b1e9c05f7ef7339f116be6e4 (diff) |
Yuck, a very ancient crasher in going area-full screen in Blender.
I wonder how this survived so long in Blender... (2005/03/09 commit).
Reason was the call to BPY_free_screen_spacehandlers(sc) in kernel,
which was freeing up scripthandlers in a weird way. That call is
really obsolete. The real freeing should go in the del_area() call,
to prevent copying and deleting area in the UI to go wrong.
(Crash happened in testing timeline markers, and holding CTRL+Uparrow
a while...)
Diffstat (limited to 'source/blender/src/editscreen.c')
-rw-r--r-- | source/blender/src/editscreen.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 2fdc3bc6025..4154b73ffa5 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -1836,8 +1836,10 @@ static void del_area(ScrArea *sa) uiFreeBlocks(&sa->uiblocks); uiFreePanels(&sa->panels); - if(sa==curarea) curarea= 0; - if(sa==g_activearea) g_activearea= 0; + BPY_free_scriptlink(&sa->scriptlink); + + if(sa==curarea) curarea= NULL; + if(sa==g_activearea) g_activearea= NULL; } /* sa2 to sa1 */ |