diff options
Diffstat (limited to 'source/blender/modifiers')
-rw-r--r-- | source/blender/modifiers/intern/MOD_array.c | 11 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_boolean.c | 7 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_meshdeform.c | 6 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_surfacedeform.c | 16 | ||||
-rw-r--r-- | source/blender/modifiers/intern/MOD_weightvgproximity.c | 7 |
5 files changed, 10 insertions, 37 deletions
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c index 5fdfe1ef7cf..e0ae1cc3500 100644 --- a/source/blender/modifiers/intern/MOD_array.c +++ b/source/blender/modifiers/intern/MOD_array.c @@ -359,7 +359,6 @@ static Mesh *arrayModifier_doArray( int first_chunk_start, first_chunk_nverts, last_chunk_start, last_chunk_nverts; Mesh *result, *start_cap_mesh = NULL, *end_cap_mesh = NULL; - bool start_cap_mesh_free, end_cap_mesh_free; int *vgroup_start_cap_remap = NULL; int vgroup_start_cap_remap_len = 0; @@ -378,7 +377,7 @@ static Mesh *arrayModifier_doArray( vgroup_start_cap_remap = BKE_object_defgroup_index_map_create( start_cap_ob, ctx->object, &vgroup_start_cap_remap_len); - start_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(start_cap_ob, &start_cap_mesh_free); + start_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(start_cap_ob, false); if (start_cap_mesh) { start_cap_nverts = start_cap_mesh->totvert; start_cap_nedges = start_cap_mesh->totedge; @@ -391,7 +390,7 @@ static Mesh *arrayModifier_doArray( vgroup_end_cap_remap = BKE_object_defgroup_index_map_create( end_cap_ob, ctx->object, &vgroup_end_cap_remap_len); - end_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(end_cap_ob, &end_cap_mesh_free); + end_cap_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(end_cap_ob, false); if (end_cap_mesh) { end_cap_nverts = end_cap_mesh->totvert; end_cap_nedges = end_cap_mesh->totedge; @@ -727,12 +726,6 @@ static Mesh *arrayModifier_doArray( if (vgroup_end_cap_remap) { MEM_freeN(vgroup_end_cap_remap); } - if (start_cap_mesh != NULL && start_cap_mesh_free) { - BKE_id_free(NULL, start_cap_mesh); - } - if (end_cap_mesh != NULL && end_cap_mesh_free) { - BKE_id_free(NULL, end_cap_mesh); - } return result; } diff --git a/source/blender/modifiers/intern/MOD_boolean.c b/source/blender/modifiers/intern/MOD_boolean.c index d26aaf622a3..d7fca5c12f3 100644 --- a/source/blender/modifiers/intern/MOD_boolean.c +++ b/source/blender/modifiers/intern/MOD_boolean.c @@ -157,14 +157,13 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes Mesh *result = mesh; Mesh *mesh_other; - bool mesh_other_free; if (bmd->object == NULL) { return result; } Object *other = DEG_get_evaluated_object(ctx->depsgraph, bmd->object); - mesh_other = BKE_modifier_get_evaluated_mesh_from_evaluated_object(other, &mesh_other_free); + mesh_other = BKE_modifier_get_evaluated_mesh_from_evaluated_object(other, false); if (mesh_other) { Object *object = ctx->object; @@ -318,10 +317,6 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes modifier_setError(md, "Cannot execute boolean operation"); } - if (mesh_other != NULL && mesh_other_free) { - BKE_id_free(NULL, mesh_other); - } - return result; } diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index d789f964b6e..8013a015997 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -279,7 +279,6 @@ static void meshdeformModifier_do( int a, totvert, totcagevert, defgrp_index; float (*cagecos)[3] = NULL; MeshdeformUserdata data; - bool free_cagemesh = false; static int recursive_bind_sentinel = 0; @@ -297,7 +296,7 @@ static void meshdeformModifier_do( * We'll support this case once granular dependency graph is landed. */ Object *ob_target = DEG_get_evaluated_object(ctx->depsgraph, mmd->object); - cagemesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, &free_cagemesh); + cagemesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, false); #if 0 /* This shall not be needed if we always get evaluated target object... */ if (cagemesh == NULL && mmd->bindcagecos == NULL && ob == DEG_get_original_object(ob)) { /* Special case, binding happens outside of depsgraph evaluation, so we can build our own @@ -399,9 +398,6 @@ static void meshdeformModifier_do( finally: MEM_SAFE_FREE(dco); MEM_SAFE_FREE(cagecos); - if (cagemesh != NULL && free_cagemesh) { - BKE_id_free(NULL, cagemesh); - } } static void deformVerts( diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c index cb04d7fc307..d3910a04dfb 100644 --- a/source/blender/modifiers/intern/MOD_surfacedeform.c +++ b/source/blender/modifiers/intern/MOD_surfacedeform.c @@ -1124,7 +1124,6 @@ static void surfacedeformModifier_do( float (*vertexCos)[3], unsigned int numverts, Object *ob) { SurfaceDeformModifierData *smd = (SurfaceDeformModifierData *)md; - bool free_target; Mesh *target; unsigned int tnumverts, tnumpoly; @@ -1145,7 +1144,7 @@ static void surfacedeformModifier_do( } Object *ob_target = DEG_get_evaluated_object(ctx->depsgraph, smd->target); - target = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, &free_target); + target = BKE_modifier_get_evaluated_mesh_from_evaluated_object(ob_target, false); #if 0 /* Should not be needed anymore since we always get that mesh from eval object ? */ if (target == NULL && smd->verts == NULL && ob == DEG_get_original_object(ob)) { /* Special case, binding happens outside of depsgraph evaluation, so we can build our own @@ -1169,7 +1168,7 @@ static void surfacedeformModifier_do( if (ob != DEG_get_original_object(ob)) { BLI_assert(!"Trying to bind inside of depsgraph evaluation"); modifier_setError(md, "Trying to bind inside of depsgraph evaluation"); - goto finally; + return; } float tmp_mat[4][4]; @@ -1180,17 +1179,17 @@ static void surfacedeformModifier_do( smd->flags &= ~MOD_SDEF_BIND; } /* Early abort, this is binding 'call', no need to perform whole evaluation. */ - goto finally; + return; } /* Poly count checks */ if (smd->numverts != numverts) { modifier_setError(md, "Verts changed from %u to %u", smd->numverts, numverts); - goto finally; + return; } else if (smd->numpoly != tnumpoly) { modifier_setError(md, "Target polygons changed from %u to %u", smd->numpoly, tnumpoly); - goto finally; + return; } /* Actual vertex location update starts here */ @@ -1217,11 +1216,6 @@ static void surfacedeformModifier_do( MEM_freeN(data.targetCos); } - -finally: - if (target != NULL && free_target) { - BKE_id_free(NULL, target); - } } static void deformVerts( diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c index 7f710967ec1..63b8055220d 100644 --- a/source/blender/modifiers/intern/MOD_weightvgproximity.c +++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c @@ -484,8 +484,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes const bool use_trgt_faces = (wmd->proximity_flags & MOD_WVG_PROXIMITY_GEOM_FACES) != 0; if (use_trgt_verts || use_trgt_edges || use_trgt_faces) { - bool target_mesh_free; - Mesh *target_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(obr, &target_mesh_free); + Mesh *target_mesh = BKE_modifier_get_evaluated_mesh_from_evaluated_object(obr, false); /* We must check that we do have a valid target_mesh! */ if (target_mesh != NULL) { @@ -508,10 +507,6 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes MEM_SAFE_FREE(dists_v); MEM_SAFE_FREE(dists_e); MEM_SAFE_FREE(dists_f); - - if (target_mesh_free) { - BKE_id_free(NULL, target_mesh); - } } /* Else, fall back to default obj2vert behavior. */ else { |