[Bf-blender-cvs] [0545a847294] master: Fix Crash In Paint Overlay

Jeroen Bakker noreply at git.blender.org
Thu Mar 26 14:17:47 CET 2020


Commit: 0545a8472946ecc7391f8554c4a214b45952d19e
Author: Jeroen Bakker
Date:   Thu Mar 26 14:16:17 2020 +0100
Branches: master
https://developer.blender.org/rB0545a8472946ecc7391f8554c4a214b45952d19e

Fix Crash In Paint Overlay

The previous implementation tested the normal behavior and ignored some
edge cases. This patch will also test for NULL in all cases

===================================================================

M	source/blender/draw/engines/overlay/overlay_paint.c

===================================================================

diff --git a/source/blender/draw/engines/overlay/overlay_paint.c b/source/blender/draw/engines/overlay/overlay_paint.c
index 256cc0146dc..4a1aa270de0 100644
--- a/source/blender/draw/engines/overlay/overlay_paint.c
+++ b/source/blender/draw/engines/overlay/overlay_paint.c
@@ -39,14 +39,15 @@ static bool paint_object_is_rendered_transparent(View3D *v3d, Object *ob)
       return true;
     }
 
-    if (v3d->shading.color_type == V3D_SHADING_OBJECT_COLOR) {
+    if (ob && v3d->shading.color_type == V3D_SHADING_OBJECT_COLOR) {
       return ob->color[3] < 1.0f;
     }
-    else if (v3d->shading.color_type == V3D_SHADING_MATERIAL_COLOR) {
+    else if (ob && ob->type == OB_MESH && ob->data &&
+             v3d->shading.color_type == V3D_SHADING_MATERIAL_COLOR) {
       Mesh *me = ob->data;
       for (int i = 0; i < me->totcol; i++) {
         Material *mat = me->mat[i];
-        if (mat->a < 1.0f) {
+        if (mat && mat->a < 1.0f) {
           return true;
         }
       }



More information about the Bf-blender-cvs mailing list