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-06-25 18:57:45 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-06-25 18:57:45 +0400
commitdaa54f0f5cbbacf519d6ce354a2ae5c289b6f056 (patch)
treed2c937abf2f985896c4039a3750e6618b284d436 /source/blender/blenkernel/intern/anim.c
parent40d4dfaba84fe0d5048cc847d5d249a35314b8ed (diff)
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.
Diffstat (limited to 'source/blender/blenkernel/intern/anim.c')
-rw-r--r--source/blender/blenkernel/intern/anim.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 35510fe64d5..9fea3d2e13f 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -1724,8 +1724,11 @@ ListBase *object_duplilist_ex(Scene *sce, Object *ob, bool update, bool for_rend
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);