[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58078] branches/soc-2013-depsgraph_mt/ source/blender/blenkernel/intern/scene.c: Workaround for crash caused by threaded dupligorup update

Sergey Sharybin sergey.vfx at gmail.com
Mon Jul 8 15:56:34 CEST 2013


Revision: 58078
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58078
Author:   nazgul
Date:     2013-07-08 13:56:34 +0000 (Mon, 08 Jul 2013)
Log Message:
-----------
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.

Modified Paths:
--------------
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c	2013-07-08 13:30:11 UTC (rev 58077)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/scene.c	2013-07-08 13:56:34 UTC (rev 58078)
@@ -1268,6 +1268,15 @@
 
 			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);
+						}
+					}
+				}
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list