[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34137] trunk/blender/source/blender/ editors/interface: fix [#25520] crash when closing the properties panel in uv/image editor

Campbell Barton ideasman42 at gmail.com
Fri Jan 7 05:10:38 CET 2011


Revision: 34137
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=34137
Author:   campbellbarton
Date:     2011-01-07 04:10:37 +0000 (Fri, 07 Jan 2011)
Log Message:
-----------
fix [#25520] crash when closing the properties panel in uv/image editor
don't draw the image if the size is 0.

Crash was actually an assert() so debug builds only, replace assert() with BKE_assert() so crash is opt in build option.

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

Modified: trunk/blender/source/blender/editors/interface/interface_icons.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_icons.c	2011-01-07 02:39:48 UTC (rev 34136)
+++ trunk/blender/source/blender/editors/interface/interface_icons.c	2011-01-07 04:10:37 UTC (rev 34137)
@@ -28,7 +28,6 @@
 #include <math.h>
 #include <stdlib.h>
 #include <string.h>
-#include <assert.h>
 
 #ifndef WIN32
 #include <unistd.h>
@@ -851,7 +850,7 @@
 	/* sanity check */
 	if(w<=0 || h<=0 || w>2000 || h>2000) {
 		printf("icon_draw_rect: icons are %i x %i pixels?\n", w, h);
-		assert(!"invalid icon size");
+		BKE_assert(!"invalid icon size");
 		return;
 	}
 

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2011-01-07 02:39:48 UTC (rev 34136)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2011-01-07 04:10:37 UTC (rev 34137)
@@ -747,7 +747,7 @@
 
 static void widget_draw_preview(BIFIconID icon, float aspect, float UNUSED(alpha), rcti *rect)
 {
-	int w, h, x, y, size;
+	int w, h, size;
 
 	if(icon==ICON_NULL)
 		return;
@@ -756,11 +756,13 @@
 	h = rect->ymax - rect->ymin;
 	size = MIN2(w, h);
 	size -= PREVIEW_PAD*2;	/* padding */
-	
-	x = rect->xmin + w/2 - size/2;
-	y = rect->ymin + h/2 - size/2;
-	
-	UI_icon_draw_preview_aspect_size(x, y, icon, aspect, size);
+
+	if(size > 0) {
+		int x = rect->xmin + w/2 - size/2;
+		int y = rect->ymin + h/2 - size/2;
+
+		UI_icon_draw_preview_aspect_size(x, y, icon, aspect, size);
+	}
 }
 
 




More information about the Bf-blender-cvs mailing list