[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19109] branches/blender2.5/blender/source /blender/windowmanager/intern/wm_event_system.c: 2.5

Ton Roosendaal ton at blender.org
Wed Feb 25 10:36:26 CET 2009


Revision: 19109
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19109
Author:   ton
Date:     2009-02-25 10:36:25 +0100 (Wed, 25 Feb 2009)

Log Message:
-----------
2.5

Bugfix: commit of last week that moved object_handle_update() out
of the view3d code into event loop caused render to crash. This
update should not be called during render. In future it'll even
be thread-locked or better; solved by giving objects an 'owner'
for storage of updates.

This solves a lot of crashes on render.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-02-25 06:43:03 UTC (rev 19108)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2009-02-25 09:36:25 UTC (rev 19109)
@@ -218,18 +218,20 @@
 			}
 		}
 		
-		/* update all objects, ipos, matrices, displists, etc. Flags set by depgraph or manual, 
-			no layer check here, gets correct flushed */
-		/* sets first, we allow per definition current scene to have dependencies on sets */
-		if(scene->set) {
-			for(SETLOOPER(scene->set, base))
+		if(G.rendering==0) { // XXX make lock in future, or separated derivedmesh users in scene
+			
+			/* update all objects, ipos, matrices, displists, etc. Flags set by depgraph or manual, 
+				no layer check here, gets correct flushed */
+			/* sets first, we allow per definition current scene to have dependencies on sets */
+			if(scene->set) {
+				for(SETLOOPER(scene->set, base))
+					object_handle_update(scene, base->object);
+			}
+			
+			for(base= scene->base.first; base; base= base->next) {
 				object_handle_update(scene, base->object);
-		}
-		
-		for(base= scene->base.first; base; base= base->next) {
-			object_handle_update(scene, base->object);
-		}
-		
+			}
+		}		
 	}
 	CTX_wm_window_set(C, NULL);
 }





More information about the Bf-blender-cvs mailing list