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;
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to