From 0a4d70f4d0ddc5bc709b162d84ec334e66ed848d Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Tue, 25 Aug 2009 23:46:00 +0000 Subject: Made an attempt to fix a crash due to undo. An undo invalidated some Freestyle-related pointers, which led to a crash when the rendering was initiated or the Freestyle panel (in the Scene buttons) was redrawn. --- source/blender/freestyle/FRS_freestyle.h | 2 +- source/blender/src/editscreen.c | 3 +++ source/blender/src/space.c | 5 +++++ source/blender/src/usiblender.c | 3 +-- 4 files changed, 10 insertions(+), 3 deletions(-) (limited to 'source/blender') diff --git a/source/blender/freestyle/FRS_freestyle.h b/source/blender/freestyle/FRS_freestyle.h index 731e5f8ad80..fe6a4426583 100644 --- a/source/blender/freestyle/FRS_freestyle.h +++ b/source/blender/freestyle/FRS_freestyle.h @@ -27,7 +27,7 @@ extern "C" { // Rendering void FRS_initialize(); - void FRS_add_Freestyle(Render* re); + void FRS_add_Freestyle(struct Render* re); void FRS_exit(); // Panel configuration diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 3cc306c8ea9..20661bd0821 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -108,6 +108,8 @@ #include "BPY_extern.h" #endif +#include "FRS_freestyle.h" + #include "mydevice.h" #include "blendef.h" @@ -1380,6 +1382,7 @@ void screenmain(void) else if (event==LOAD_FILE) { BIF_read_file(ext_load_str); sound_initialize_sounds(); + FRS_initialize(); } #ifndef DISABLE_PYTHON else if ((event==ONLOAD_SCRIPT) && BPY_has_onload_script()) { diff --git a/source/blender/src/space.c b/source/blender/src/space.c index b6221c2f84b..01f0ba18d2e 100644 --- a/source/blender/src/space.c +++ b/source/blender/src/space.c @@ -189,6 +189,8 @@ #include "GPU_extensions.h" #include "GPU_draw.h" +#include "FRS_freestyle.h" + #include "BLO_sys_types.h" // for intptr_t support /* maybe we need this defined somewhere else */ @@ -1086,6 +1088,7 @@ void BIF_undo(void) #endif BKE_undo_step(1); sound_initialize_sounds(); + FRS_initialize(); } } } @@ -1109,6 +1112,7 @@ void BIF_redo(void) if(U.uiflag & USER_GLOBALUNDO) { BKE_undo_step(-1); sound_initialize_sounds(); + FRS_initialize(); } } } @@ -1132,6 +1136,7 @@ void BIF_undo_menu(void) if(event>0) { BKE_undo_number(event); sound_initialize_sounds(); + FRS_initialize(); } } } diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c index 5cd369ea937..2e11d96935d 100644 --- a/source/blender/src/usiblender.c +++ b/source/blender/src/usiblender.c @@ -598,6 +598,7 @@ void BIF_read_file(char *name) mainwindow_set_filename_to_title(G.main->name); countall(); sound_initialize_sounds(); + FRS_initialize(); winqueue_break= 1; /* leave queues everywhere */ @@ -605,8 +606,6 @@ void BIF_read_file(char *name) if (retval!=0) G.relbase_valid = 1; - FRS_initialize(); - undo_editmode_clear(); undo_imagepaint_clear(); BKE_reset_undo(); -- cgit v1.2.3