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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-04-25 19:59:15 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-04-25 19:59:15 +0400
commit656213e6b2fb9adea9db8d7b08148301c0ffde76 (patch)
tree5f6d18f1199876ddfd491e4917343e42c152c18e /source/blender/render/intern/source/pipeline.c
parent4a6de485c395928e6a63b4d85328f9b15ca92741 (diff)
Fix freestyle crash due to freed memory access. The render data needs to be
freed first, and then the scene that it used.
Diffstat (limited to 'source/blender/render/intern/source/pipeline.c')
-rw-r--r--source/blender/render/intern/source/pipeline.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 8b74381acc2..e2d6633fffc 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -1676,14 +1676,16 @@ static void composite_freestyle_renders(Render *re, int sample)
static void free_all_freestyle_renders(void)
{
Render *re1, *freestyle_render;
+ Scene *freestyle_scene;
LinkData *link;
for (re1= RenderGlobal.renderlist.first; re1; re1= re1->next) {
for (link = (LinkData *)re1->freestyle_renders.first; link; link = link->next) {
if (link->data) {
freestyle_render = (Render *)link->data;
- BKE_scene_unlink(&re1->freestyle_bmain, freestyle_render->scene, NULL);
+ freestyle_scene = freestyle_render->scene;
RE_FreeRender(freestyle_render);
+ BKE_scene_unlink(&re1->freestyle_bmain, freestyle_scene, NULL);
}
}
BLI_freelistN(&re1->freestyle_renders);