diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-07-07 21:24:30 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-07-07 21:24:30 +0400 |
commit | 22f26b2ce4c75a562ce31d6633b7343acfd7f94a (patch) | |
tree | 900cb04f7d85772de94d80899c43de37cce8b5c0 /source/blender/render | |
parent | 15a2287a8efeed84aa09db9e65dde36d4d1f9d0f (diff) |
Fix for Bug #35970: Freestyle + Particles = Crash.
The crash was caused by a reference of freed memory in add_halo_flare() that relied
on the global variable R to retrieve a list of objects. The value of this variable
is invalidated by a nested execution of the Blender Internal renderer for Freestyle
stroke rendering, leading to the documented memory reference issue.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index f7d347e8a5a..dfdfe973241 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1676,6 +1676,9 @@ static void add_freestyle(Render *re, int render) } FRS_finish_stroke_rendering(re); + + /* restore the global R value (invalidated by nested execution of the internal renderer) */ + R = *re; } /* merges the results of Freestyle stroke rendering into a given render result */ |