Fix T49608: runtime-only particle's boid->ground Object pointer was left dangling to invalid value in read code...

This commit is contained in:
Bastien Montagne 2016-10-08 15:18:35 +02:00
parent 74e0f900c5
commit 00dc0666b3

@ -4281,8 +4281,10 @@ static void direct_link_particlesystems(FileData *fd, ListBase *particles)
if (psys->particles && psys->particles->boid) { if (psys->particles && psys->particles->boid) {
pa = psys->particles; pa = psys->particles;
pa->boid = newdataadr(fd, pa->boid); pa->boid = newdataadr(fd, pa->boid);
for (a=1, pa++; a<psys->totpart; a++, pa++) for (a = 1, pa++; a < psys->totpart; a++, pa++) {
pa->boid = (pa - 1)->boid + 1; pa->boid = (pa - 1)->boid + 1;
pa->boid->ground = NULL; /* This is purely runtime data, but still can be an issue if left dangling. */
}
} }
else if (psys->particles) { else if (psys->particles) {
for (a=0, pa=psys->particles; a<psys->totpart; a++, pa++) for (a=0, pa=psys->particles; a<psys->totpart; a++, pa++)