[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33353] trunk/blender/source/blender/ editors/interface/interface_handlers.c: bugfix [#24944] Crash on attempting to keyframe HSV color

Campbell Barton ideasman42 at gmail.com
Sat Nov 27 19:30:56 CET 2010


Revision: 33353
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33353
Author:   campbellbarton
Date:     2010-11-27 19:30:56 +0100 (Sat, 27 Nov 2010)

Log Message:
-----------
bugfix [#24944] Crash on attempting to keyframe HSV color
prevent eternal loop

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-11-27 12:48:35 UTC (rev 33352)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-11-27 18:30:56 UTC (rev 33353)
@@ -4938,17 +4938,16 @@
 void uiContextActiveProperty(const bContext *C, struct PointerRNA *ptr, struct PropertyRNA **prop, int *index)
 {
 	ARegion *ar= CTX_wm_region(C);
-	uiBlock *block;
-	uiBut *but, *activebut;
 
 	memset(ptr, 0, sizeof(*ptr));
 	*prop= NULL;
 	*index= 0;
 
 	while(ar) {
+		uiBlock *block;
+		uiBut *but, *activebut= NULL;
+	
 		/* find active button */
-		activebut= NULL;
-
 		for(block=ar->uiblocks.first; block; block=block->next) {
 			for(but=block->buttons.first; but; but= but->next) {
 				if(but->active)
@@ -4958,21 +4957,21 @@
 			}
 		}
 
-		if(activebut) {
-			if(activebut->rnapoin.data) {
-				uiHandleButtonData *data= activebut->active;
-				
-				/* found RNA button */
-				*ptr= activebut->rnapoin;
-				*prop= activebut->rnaprop;
-				*index= activebut->rnaindex;
-			
-				/* recurse into opened menu, like colorpicker case */
-				if(data && data->menu)
-					ar = data->menu->region;
-				else
-					return;
+		if(activebut && activebut->rnapoin.data) {
+			uiHandleButtonData *data= activebut->active;
+
+			/* found RNA button */
+			*ptr= activebut->rnapoin;
+			*prop= activebut->rnaprop;
+			*index= activebut->rnaindex;
+
+			/* recurse into opened menu, like colorpicker case */
+			if(data && data->menu && (ar != data->menu->region)) {
+				ar = data->menu->region;
 			}
+			else {
+				return;
+			}
 		}
 		else {
 			/* no active button */





More information about the Bf-blender-cvs mailing list