Cleanup: deduplicate free code
It is more appropriate that `depths` is freed in `ED_view3d_depths_free`.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -525,7 +525,6 @@ 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,
|
||||
@@ -533,7 +532,6 @@ static void PE_set_view3d_data(bContext *C, PEData *data)
|
||||
V3D_DEPTH_OBJECT_ONLY,
|
||||
&data->depths);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static bool PE_create_shape_tree(PEData *data, Object *shapeob)
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2322,8 +2322,11 @@ void ED_view3d_depth_override(Depsgraph *depsgraph,
|
||||
ViewDepths **r_depths)
|
||||
{
|
||||
if (v3d->runtime.flag & V3D_RUNTIME_DEPTHBUF_OVERRIDDEN) {
|
||||
/* 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);
|
||||
RegionView3D *rv3d = region->regiondata;
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/** \} */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user