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:
authorTon Roosendaal <ton@blender.org>2013-03-05 15:19:21 +0400
committerTon Roosendaal <ton@blender.org>2013-03-05 15:19:21 +0400
commitdab6f8f5593876ac1c1f9d445c35401ed840b574 (patch)
tree23b0c46d395eb883c98d6fbd1c83e29b244fd7ca /source/blender/blenkernel/intern/blender.c
parentf81b59479034bcf1d8055e0512f55204b256edfc (diff)
Bug fix #34534
Fix for 2.66a The new Copy/Paste objects feature could hang in eternal loop. Only happens for objects that refer to another scene via linkage. This fix then crashed Blender, needed to add a NULL check for screens.
Diffstat (limited to 'source/blender/blenkernel/intern/blender.c')
-rw-r--r--source/blender/blenkernel/intern/blender.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c
index be316197078..9a21a9648c9 100644
--- a/source/blender/blenkernel/intern/blender.c
+++ b/source/blender/blenkernel/intern/blender.c
@@ -899,7 +899,9 @@ static void copybuffer_doit(void *UNUSED(handle), Main *UNUSED(bmain), void *vid
{
if (vid) {
ID *id = vid;
- id->flag |= LIB_NEED_EXPAND | LIB_DOIT;
+ /* only tag for need-expand if not done, prevents eternal loops */
+ if ((id->flag & LIB_DOIT) == 0)
+ id->flag |= LIB_NEED_EXPAND | LIB_DOIT;
}
}