From 0545a8472946ecc7391f8554c4a214b45952d19e Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 26 Mar 2020 14:16:17 +0100 Subject: 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 --- source/blender/draw/engines/overlay/overlay_paint.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/draw') 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; } } -- cgit v1.2.3