[Bf-blender-cvs] [ab063db34d6] master: Cleanup: deduplicate free code
Germano Cavalcante
noreply at git.blender.org
Tue Jun 22 13:26:37 CEST 2021
Commit: ab063db34d60bdda6a683b13cef36d93ad6e760f
Author: Germano Cavalcante
Date: Tue Jun 22 08:12:59 2021 -0300
Branches: master
https://developer.blender.org/rBab063db34d60bdda6a683b13cef36d93ad6e760f
Cleanup: deduplicate free code
It is more appropriate that `depths` is freed in `ED_view3d_depths_free`.
===================================================================
M source/blender/editors/curve/editcurve_paint.c
M source/blender/editors/object/object_transform.c
M source/blender/editors/physics/particle_edit.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_utils.c
===================================================================
diff --git a/source/blender/editors/curve/editcurve_paint.c b/source/blender/editors/curve/editcurve_paint.c
index 94c227dfa75..febcf83116b 100644
--- a/source/blender/editors/curve/editcurve_paint.c
+++ b/source/blender/editors/curve/editcurve_paint.c
@@ -624,7 +624,6 @@ static void curve_draw_exit(wmOperator *op)
if (cdd->depths) {
ED_view3d_depths_free(cdd->depths);
- MEM_freeN(cdd->depths);
}
MEM_freeN(cdd);
op->customdata = NULL;
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index dbeaf829b7d..94b2f3fd566 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -1687,7 +1687,6 @@ static void object_transform_axis_target_free_data(wmOperator *op)
#ifdef USE_RENDER_OVERRIDE
if (xfd->depths) {
ED_view3d_depths_free(xfd->depths);
- MEM_freeN(xfd->depths);
}
#endif
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c
index c0d035f36cf..2bf0f842623 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -525,14 +525,12 @@ static void PE_set_view3d_data(bContext *C, PEData *data)
ED_view3d_viewcontext_init(C, &data->vc, data->depsgraph);
if (!XRAY_ENABLED(data->vc.v3d)) {
- if (!(data->vc.v3d->runtime.flag & V3D_RUNTIME_DEPTHBUF_OVERRIDDEN)) {
- ED_view3d_depth_override(data->depsgraph,
- data->vc.region,
- data->vc.v3d,
- data->vc.obact,
- V3D_DEPTH_OBJECT_ONLY,
- &data->depths);
- }
+ ED_view3d_depth_override(data->depsgraph,
+ data->vc.region,
+ data->vc.v3d,
+ data->vc.obact,
+ V3D_DEPTH_OBJECT_ONLY,
+ &data->depths);
}
}
@@ -577,7 +575,6 @@ static void PE_data_free(PEData *data)
PE_free_shape_tree(data);
if (data->depths) {
ED_view3d_depths_free(data->depths);
- MEM_freeN(data->depths);
data->depths = NULL;
}
}
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index c024bab355d..2e46deea0e8 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2322,7 +2322,10 @@ void ED_view3d_depth_override(Depsgraph *depsgraph,
ViewDepths **r_depths)
{
if (v3d->runtime.flag & V3D_RUNTIME_DEPTHBUF_OVERRIDDEN) {
- return;
+ /* Force redraw if `r_depths` is required. */
+ if (!r_depths || *r_depths != NULL) {
+ return;
+ }
}
struct bThemeState theme_state;
Scene *scene = DEG_get_evaluated_scene(depsgraph);
@@ -2365,6 +2368,9 @@ void ED_view3d_depth_override(Depsgraph *depsgraph,
}
if (r_depths) {
+ if (*r_depths) {
+ ED_view3d_depths_free(*r_depths);
+ }
*r_depths = view3d_depths_create(region);
}
}
@@ -2384,6 +2390,7 @@ void ED_view3d_depths_free(ViewDepths *depths)
if (depths->depths) {
MEM_freeN(depths->depths);
}
+ MEM_freeN(depths);
}
/** \} */
diff --git a/source/blender/editors/space_view3d/view3d_utils.c b/source/blender/editors/space_view3d/view3d_utils.c
index c7da3378ae3..ea0b1f396c3 100644
--- a/source/blender/editors/space_view3d/view3d_utils.c
+++ b/source/blender/editors/space_view3d/view3d_utils.c
@@ -1019,7 +1019,7 @@ static float view_autodist_depth_margin(ARegion *region, const int mval[2], int
ViewDepths depth_temp = {0};
view3d_depths_rect_create(region, &rect, &depth_temp);
float depth_close = view3d_depth_near(&depth_temp);
- ED_view3d_depths_free(&depth_temp);
+ MEM_SAFE_FREE(depth_temp.depths);
return depth_close;
}
More information about the Bf-blender-cvs
mailing list