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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2014-07-01 18:35:09 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2014-07-01 18:36:53 +0400
commit6c6fa749f6ee0ff7941696973b4b378a321e5709 (patch)
treee8351585d7e0737e7f6cc55f72f280d71b4346c9 /source/blender/freestyle
parent61e5f81e37d5365ebb9da49ea9b6f62f4110d054 (diff)
Second attempt to fix T40833: Crash when rendering with freestyle.
The cause of the crash was identified in an uninitialized member variable `Main->lock`. Now that struct Main has a few member variables whose values are dynamically allocated, per-render Freestyle-specific Main data structures will be allocated and released using `BKE_main_new()` and `BKE_main_free()`, respectively. This revision complements the commit rB6135556f4556.
Diffstat (limited to 'source/blender/freestyle')
-rw-r--r--source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp2
-rw-r--r--source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp10
2 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index f135f2ebee6..845eaaad885 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
@@ -58,7 +58,7 @@ namespace Freestyle {
BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer()
{
- freestyle_bmain = &re->freestyle_bmain;
+ freestyle_bmain = re->freestyle_bmain;
// for stroke mesh generation
_width = re->winx;
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
index 9474ce7994d..9c2b5a4037f 100644
--- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
+++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
@@ -577,7 +577,7 @@ void FRS_init_stroke_rendering(Render *re)
Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render)
{
- Main bmain = {0};
+ Main *freestyle_bmain = re->freestyle_bmain;
Render *freestyle_render = NULL;
Text *text, *next_text;
@@ -599,7 +599,7 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render)
// - add style modules
// - set parameters
// - compute view map
- prepare(&bmain, re, srl);
+ prepare(freestyle_bmain, re, srl);
if (re->test_break(re->tbh)) {
controller->CloseFile();
@@ -628,11 +628,11 @@ Render *FRS_do_stroke_rendering(Render *re, SceneRenderLayer *srl, int render)
}
// Free temp main (currently only text blocks are stored there)
- for (text = (Text *) bmain.text.first; text; text = next_text) {
+ for (text = (Text *)freestyle_bmain->text.first; text; text = next_text) {
next_text = (Text *) text->id.next;
- BKE_text_unlink(&bmain, text);
- BKE_libblock_free(&bmain, text);
+ BKE_text_unlink(freestyle_bmain, text);
+ BKE_libblock_free(freestyle_bmain, text);
}
return freestyle_render;