[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57043] trunk/blender/source/blender: fix [#35518] UV Mapping crashes the Blender with specific image file
Campbell Barton
ideasman42 at gmail.com
Mon May 27 08:06:36 CEST 2013
Revision: 57043
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57043
Author: campbellbarton
Date: 2013-05-27 06:06:35 +0000 (Mon, 27 May 2013)
Log Message:
-----------
fix [#35518] UV Mapping crashes the Blender with specific image file
2 bugs here
- missing NULL check in IMB_colormanagement_display_settings_from_ctx()
- deadlock in draw_image_paint_helpers()
Simple solution is to not draw paint helpers for render/viewer images.
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_image/image_draw.c
trunk/blender/source/blender/imbuf/intern/colormanagement.c
Modified: trunk/blender/source/blender/editors/space_image/image_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_draw.c 2013-05-26 22:34:45 UTC (rev 57042)
+++ trunk/blender/source/blender/editors/space_image/image_draw.c 2013-05-27 06:06:35 UTC (rev 57043)
@@ -783,7 +783,7 @@
Image *ima;
ImBuf *ibuf;
float zoomx, zoomy;
- int show_viewer, show_render;
+ bool show_viewer, show_render, show_paint;
void *lock;
/* XXX can we do this in refresh? */
@@ -810,8 +810,9 @@
ima = ED_space_image(sima);
ED_space_image_get_zoom(sima, ar, &zoomx, &zoomy);
- show_viewer = (ima && ima->source == IMA_SRC_VIEWER);
- show_render = (show_viewer && ima->type == IMA_TYPE_R_RESULT);
+ show_viewer = (ima && ima->source == IMA_SRC_VIEWER) != 0;
+ show_render = (show_viewer && ima->type == IMA_TYPE_R_RESULT) != 0;
+ show_paint = (ima && (sima->mode == SI_MODE_PAINT) && (show_viewer == false) && (show_render == false));
if (show_viewer) {
/* use locked draw for drawing viewer image buffer since the compositor
@@ -835,7 +836,7 @@
draw_image_buffer(C, sima, ar, scene, ibuf, 0.0f, 0.0f, zoomx, zoomy);
/* paint helpers */
- if (sima->mode == SI_MODE_PAINT)
+ if (show_paint)
draw_image_paint_helpers(C, ar, scene, zoomx, zoomy);
/* XXX integrate this code */
Modified: trunk/blender/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/colormanagement.c 2013-05-26 22:34:45 UTC (rev 57042)
+++ trunk/blender/source/blender/imbuf/intern/colormanagement.c 2013-05-27 06:06:35 UTC (rev 57043)
@@ -672,7 +672,7 @@
*view_settings_r = &scene->view_settings;
*display_settings_r = &scene->display_settings;
- if (sima) {
+ if (sima && sima->image) {
if ((sima->image->flag & IMA_VIEW_AS_RENDER) == 0)
*view_settings_r = NULL;
}
More information about the Bf-blender-cvs
mailing list