diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-06-21 01:06:37 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-06-21 01:06:46 +0300 |
commit | b30f3f6c19c9a791c8899d97d376df08baa3889e (patch) | |
tree | 853e4f2cb236f34f2363b7a2c405ca7168c6fb2b | |
parent | 2f3f1f60381495bc1c5e5e8c0aeab665a7ef8761 (diff) |
Fix T65960 Crash on entering Edit Mode of BesierCurve with modifiers
-rw-r--r-- | source/blender/draw/modes/edit_curve_mode.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c index 068af2e2012..e3c120e80cb 100644 --- a/source/blender/draw/modes/edit_curve_mode.c +++ b/source/blender/draw/modes/edit_curve_mode.c @@ -269,7 +269,9 @@ static void EDIT_CURVE_cache_populate(void *vedata, Object *ob) } geom = DRW_cache_curve_edge_wire_get(ob); - DRW_shgroup_call(wire_shgrp, geom, ob); + if (geom) { + DRW_shgroup_call(wire_shgrp, geom, ob); + } if ((cu->flag & CU_3D) && (v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CU_NORMALS) != 0) { geom = DRW_cache_curve_edge_normal_get(ob); @@ -282,17 +284,23 @@ static void EDIT_CURVE_cache_populate(void *vedata, Object *ob) } geom = DRW_cache_curve_vert_overlay_get(ob, stl->g_data->show_handles); - DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob); + if (geom) { + DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob); + } } } if (ob->type == OB_SURF) { if (BKE_object_is_in_editmode(ob)) { struct GPUBatch *geom = DRW_cache_curve_edge_overlay_get(ob); - DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob); + if (geom) { + DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob); + } geom = DRW_cache_curve_vert_overlay_get(ob, false); - DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob); + if (geom) { + DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob); + } } } } |