[Bf-blender-cvs] [9f634a195d1] master: Fix crash drawing non-mesh objects with vertex color

Campbell Barton noreply at git.blender.org
Wed Jul 1 08:51:25 CEST 2020


Commit: 9f634a195d1f2bd4c16332fa513dfeffa0301977
Author: Campbell Barton
Date:   Wed Jul 1 16:44:31 2020 +1000
Branches: master
https://developer.blender.org/rB9f634a195d1f2bd4c16332fa513dfeffa0301977

Fix crash drawing non-mesh objects with vertex color

Missing NULL check in f7bbc7cdbb6cb

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

M	source/blender/draw/engines/workbench/workbench_engine.c

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

diff --git a/source/blender/draw/engines/workbench/workbench_engine.c b/source/blender/draw/engines/workbench/workbench_engine.c
index 0eef22655d3..c8dde4d513b 100644
--- a/source/blender/draw/engines/workbench/workbench_engine.c
+++ b/source/blender/draw/engines/workbench/workbench_engine.c
@@ -251,18 +251,17 @@ static eV3DShadingColorType workbench_color_type_get(WORKBENCH_PrivateData *wpd,
   const bool is_texpaint_mode = is_active && (wpd->ctx_mode == CTX_MODE_PAINT_TEXTURE);
   const bool is_vertpaint_mode = is_active && (wpd->ctx_mode == CTX_MODE_PAINT_VERTEX);
 
-  if ((color_type == V3D_SHADING_TEXTURE_COLOR) && (ob->dt < OB_TEXTURE)) {
-    color_type = V3D_SHADING_MATERIAL_COLOR;
-  }
-  /* Disable color mode if data layer is unavailable. */
-  if ((color_type == V3D_SHADING_TEXTURE_COLOR) && (me == NULL || me->mloopuv == NULL)) {
-    color_type = V3D_SHADING_MATERIAL_COLOR;
-  }
-  if (color_type == V3D_SHADING_VERTEX_COLOR) {
-    if (me == NULL) {
-      color_type = V3D_SHADING_OBJECT_COLOR;
+  if (color_type == V3D_SHADING_TEXTURE_COLOR) {
+    if (ob->dt < OB_TEXTURE) {
+      color_type = V3D_SHADING_MATERIAL_COLOR;
     }
-    if (!CustomData_has_layer(&me->vdata, CD_PROP_COLOR)) {
+    else if ((me == NULL) || (me->mloopuv == NULL)) {
+      /* Disable color mode if data layer is unavailable. */
+      color_type = V3D_SHADING_MATERIAL_COLOR;
+    }
+  }
+  else if (color_type == V3D_SHADING_VERTEX_COLOR) {
+    if ((me == NULL) || !CustomData_has_layer(&me->vdata, CD_PROP_COLOR)) {
       color_type = V3D_SHADING_OBJECT_COLOR;
     }
   }



More information about the Bf-blender-cvs mailing list