Workaround for crash caused by threaded dupligorup update

Some objects from scene could have dupligroup with objects
which are not in the scene. This case wasn't checked by
workaround for threaded display object free routines.

We really need to have threading issues with display
objects solved.
This commit is contained in:
2013-07-08 13:56:34 +00:00
parent 8097e9d235
commit 0bf3e7c5c6

View File

@@ -1268,6 +1268,15 @@ static void scene_update_objects_threaded(Scene *scene, Scene *scene_parent)
if (ob->recalc & OB_RECALC_ALL) {
BKE_object_free_derived_caches(ob);
if (ob->dup_group && (ob->transflag & OB_DUPLIGROUP)) {
GroupObject *go;
for (go = ob->dup_group->gobject.first; go; go = go->next) {
if (go->ob && go->ob->recalc) {
BKE_object_free_derived_caches(go->ob);
}
}
}
}
}
}