diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-07-24 06:51:51 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-07-24 06:51:51 +0400 |
commit | f24bcc689cb1d97b3ddbce00f99231e9779f2b98 (patch) | |
tree | 9d4da4e8f5146bdc2308ec02dcc3571cae5d708e /source | |
parent | 780f4c1c781fb8059c4382bf7b482d975829f23b (diff) |
bugfix [#22988] Duplicating Lights by Frame Causes Hangup
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/pointcache.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 5295a496d2b..ced5d116ad0 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -1041,11 +1041,13 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int dup if((lb_dupli_ob=object_duplilist(scene, ob))) { DupliObject *dob; for(dob= lb_dupli_ob->first; dob; dob= dob->next) { - ListBase lb_dupli_pid; - BKE_ptcache_ids_from_object(&lb_dupli_pid, dob->ob, scene, duplis); - addlisttolist(lb, &lb_dupli_pid); - if(lb_dupli_pid.first) - printf("Adding Dupli\n"); + if(dob->ob != ob) { /* avoids recursive loops with dupliframes: bug 22988 */ + ListBase lb_dupli_pid; + BKE_ptcache_ids_from_object(&lb_dupli_pid, dob->ob, scene, duplis); + addlisttolist(lb, &lb_dupli_pid); + if(lb_dupli_pid.first) + printf("Adding Dupli\n"); + } } free_object_duplilist(lb_dupli_ob); /* does restore */ |