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:
authorCampbell Barton <ideasman42@gmail.com>2010-07-24 06:51:51 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-07-24 06:51:51 +0400
commitf24bcc689cb1d97b3ddbce00f99231e9779f2b98 (patch)
tree9d4da4e8f5146bdc2308ec02dcc3571cae5d708e
parent780f4c1c781fb8059c4382bf7b482d975829f23b (diff)
bugfix [#22988] Duplicating Lights by Frame Causes Hangup
-rw-r--r--source/blender/blenkernel/intern/pointcache.c12
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 */