From 944da82eafeb88ecfebfa5c302aaea97150c49eb Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 28 Feb 2020 12:08:15 +0100 Subject: Multires: Cleanup, use early return --- source/blender/blenkernel/intern/multires.c | 49 ++++++++++++++++------------- 1 file changed, 28 insertions(+), 21 deletions(-) (limited to 'source/blender/blenkernel/intern/multires.c') diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 35de0d19d95..ad33fd9b2e0 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -408,36 +408,43 @@ void multires_mark_as_modified(Depsgraph *depsgraph, Object *object, MultiresMod void multires_flush_sculpt_updates(Object *object) { - if (object && object->sculpt && object->sculpt->pbvh != NULL) { - SculptSession *sculpt_session = object->sculpt; - if (BKE_pbvh_type(sculpt_session->pbvh) == PBVH_GRIDS && sculpt_session->multires) { - Mesh *mesh = object->data; - multiresModifier_reshapeFromCCG( - sculpt_session->multires->totlvl, mesh, sculpt_session->subdiv_ccg); - } + if (object == NULL || object->sculpt == NULL || object->sculpt->pbvh == NULL) { + return; + } + + SculptSession *sculpt_session = object->sculpt; + if (BKE_pbvh_type(sculpt_session->pbvh) != PBVH_GRIDS || sculpt_session->multires == NULL) { + return; } + + Mesh *mesh = object->data; + multiresModifier_reshapeFromCCG( + sculpt_session->multires->totlvl, mesh, sculpt_session->subdiv_ccg); } void multires_force_sculpt_rebuild(Object *object) { multires_flush_sculpt_updates(object); - if (object && object->sculpt) { - SculptSession *ss = object->sculpt; - if (ss->pbvh) { - BKE_pbvh_free(ss->pbvh); - object->sculpt->pbvh = NULL; - } + if (object == NULL || object->sculpt == NULL) { + return; + } - if (ss->pmap) { - MEM_freeN(ss->pmap); - ss->pmap = NULL; - } + SculptSession *ss = object->sculpt; - if (ss->pmap_mem) { - MEM_freeN(ss->pmap_mem); - ss->pmap_mem = NULL; - } + if (ss->pbvh != NULL) { + BKE_pbvh_free(ss->pbvh); + object->sculpt->pbvh = NULL; + } + + if (ss->pmap != NULL) { + MEM_freeN(ss->pmap); + ss->pmap = NULL; + } + + if (ss->pmap_mem != NULL) { + MEM_freeN(ss->pmap_mem); + ss->pmap_mem = NULL; } } -- cgit v1.2.3