[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11910] trunk/blender/source/blender/src/ editobject.c: Bugfix for [#7018] Hiding, unhiding a spot lamp and then setting it to buf shadow segfaults

Campbell Barton cbarton at metavr.com
Sat Sep 1 01:23:39 CEST 2007


Revision: 11910
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11910
Author:   campbellbarton
Date:     2007-09-01 01:23:38 +0200 (Sat, 01 Sep 2007)

Log Message:
-----------
Bugfix for [#7018] Hiding, unhiding a spot lamp and then setting it to buf shadow segfaults
buttons were not redrawing so it was possible to use them without an active object, this crashed blender.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editobject.c

Modified: trunk/blender/source/blender/src/editobject.c
===================================================================
--- trunk/blender/source/blender/src/editobject.c	2007-08-31 21:54:56 UTC (rev 11909)
+++ trunk/blender/source/blender/src/editobject.c	2007-08-31 23:23:38 UTC (rev 11910)
@@ -5486,14 +5486,17 @@
 void hide_objects(int select)
 {
 	Base *base;
-	int changed = 0;
+	short changed = 0, changed_act = 0;
 	for(base = FIRSTBASE; base; base=base->next){
 		if(TESTBASELIB(base)==select){
 			base->flag &= ~SELECT;
 			base->object->flag = base->flag;
 			base->object->restrictflag |= OB_RESTRICT_VIEW;
 			changed = 1;
-			if (base==BASACT) BASACT= NULL;
+			if (base==BASACT) {
+				BASACT= NULL;
+				changed_act = 1;
+			}
 		}
 	}
 	if (changed) {
@@ -5502,6 +5505,12 @@
 		DAG_scene_sort(G.scene);
 		allqueue(REDRAWVIEW3D,0);
 		allqueue(REDRAWOOPS,0);
+		allqueue(REDRAWDATASELECT,0);
+		if (changed_act) { /* these spaces depend on the active object */
+			allqueue(REDRAWBUTSALL,0);
+			allqueue(REDRAWIPO,0);
+			allqueue(REDRAWACTION,0);
+		}
 		countall();
 	}
 }





More information about the Bf-blender-cvs mailing list