[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57740] trunk/blender/source/blender/ blenkernel/intern/anim.c: Fix #35846: crash rendering with dupligroups visible in 3D viewport during render

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Jun 25 16:57:46 CEST 2013


Revision: 57740
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57740
Author:   blendix
Date:     2013-06-25 14:57:45 +0000 (Tue, 25 Jun 2013)
Log Message:
-----------
Fix #35846: crash rendering with dupligroups visible in 3D viewport during render
in some cases. The dupli code would still do object updates during render indirectly,
while this is disabled for thread safety everywhere else, now we disable it for this
case as well.

Not a pretty solution but this is for the depgraph refactor to solve.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/anim.c

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2013-06-25 14:48:30 UTC (rev 57739)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2013-06-25 14:57:45 UTC (rev 57740)
@@ -1724,8 +1724,11 @@
 	int persistent_id[MAX_DUPLI_RECUR] = {0};
 	int flag = 0;
 
-	if (update)     flag |= DUPLILIST_DO_UPDATE;
-	if (for_render) flag |= DUPLILIST_FOR_RENDER;
+	/* don't allow BKE_object_handle_update for viewport during render, can crash */
+	if (update && !(G.is_rendering && !for_render))
+		flag |= DUPLILIST_DO_UPDATE;
+	if (for_render)
+		flag |= DUPLILIST_FOR_RENDER;
 
 	duplilist->first = duplilist->last = NULL;
 	object_duplilist_recursive((ID *)sce, sce, ob, duplilist, NULL, persistent_id, 0, 0, flag);




More information about the Bf-blender-cvs mailing list