From dab6f8f5593876ac1c1f9d445c35401ed840b574 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 5 Mar 2013 11:19:21 +0000 Subject: 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. --- source/blender/blenkernel/intern/blender.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/blender.c') 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; } } -- cgit v1.2.3