[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41392] branches/soc-2008-mxcurioni/source /blender/render/intern/source/pipeline.c: Fixed a crash due to invalid pointers to temporary scenes for stroke rendering .
Tamito Kajiyama
rd6t-kjym at asahi-net.or.jp
Sun Oct 30 23:53:24 CET 2011
Revision: 41392
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41392
Author: kjym3
Date: 2011-10-30 22:53:24 +0000 (Sun, 30 Oct 2011)
Log Message:
-----------
Fixed a crash due to invalid pointers to temporary scenes for stroke rendering.
Freestyle generates a temporary scene containing a number of stroke meshes to
achieve stroke rendering using the Blender internal renderer. This temporary
scene may appear in the outliner and undergo user interaction when the stroke
rendering takes a long time. The crash was due to the deletion of the scene
without taking care of references to the scene from screens, one of which was
the outliner.
Modified Paths:
--------------
branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c
Modified: branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c 2011-10-30 22:46:59 UTC (rev 41391)
+++ branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c 2011-10-30 22:53:24 UTC (rev 41392)
@@ -2333,7 +2333,7 @@
}
/* releases temporary scenes and renders for Freestyle stroke rendering */
-static void free_all_freestyle_renders(void)
+static void free_all_freestyle_renders(Scene *scene)
{
Render *re1, *freestyle_render;
LinkData *link;
@@ -2342,7 +2342,7 @@
for (link = (LinkData *)re1->freestyle_renders.first; link; link = link->next) {
if (link->data) {
freestyle_render = (Render *)link->data;
- free_libblock(&G.main->scene, freestyle_render->scene);
+ unlink_scene(G.main, freestyle_render->scene, scene);
RE_FreeRender(freestyle_render);
}
}
@@ -2576,7 +2576,7 @@
do_merge_fullsample(re, NULL);
}
- free_all_freestyle_renders();
+ free_all_freestyle_renders(re->scene);
/* weak... the display callback wants an active renderlayer pointer... */
re->result->renlay= render_get_active_layer(re, re->result);
More information about the Bf-blender-cvs
mailing list