Refactor: Eyedropper: Use C++ new/delete allocations.

Pretty trivial. Part of the effort to make PointerRNA non-trivial (#122431).
This commit is contained in:
Bastien Montagne
2024-08-27 19:23:44 +02:00
parent 841669c79e
commit 5eb80b1fa0
4 changed files with 19 additions and 18 deletions

View File

@@ -90,7 +90,7 @@ static void eyedropper_draw_cb(const wmWindow * /*window*/, void *arg)
static bool eyedropper_init(bContext *C, wmOperator *op)
{
Eyedropper *eye = MEM_cnew<Eyedropper>(__func__);
Eyedropper *eye = MEM_new<Eyedropper>(__func__);
PropertyRNA *prop;
if ((prop = RNA_struct_find_property(op->ptr, "prop_data_path")) &&
@@ -126,7 +126,7 @@ static bool eyedropper_init(bContext *C, wmOperator *op)
(RNA_property_type(eye->prop) != PROP_FLOAT) ||
(ELEM(prop_subtype, PROP_COLOR, PROP_COLOR_GAMMA) == 0))
{
MEM_freeN(eye);
MEM_delete(eye);
return false;
}
op->customdata = eye;
@@ -178,7 +178,8 @@ static void eyedropper_exit(bContext *C, wmOperator *op)
eye->viewport_session = nullptr;
}
MEM_SAFE_FREE(op->customdata);
op->customdata = nullptr;
MEM_delete(eye);
}
/* *** eyedropper_color_ helper functions *** */

View File

@@ -78,7 +78,7 @@ static int datadropper_init(bContext *C, wmOperator *op)
st = BKE_spacetype_from_id(SPACE_VIEW3D);
art = BKE_regiontype_from_id(st, RGN_TYPE_WINDOW);
DataDropper *ddr = MEM_cnew<DataDropper>(__func__);
DataDropper *ddr = MEM_new<DataDropper>(__func__);
uiBut *but = UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &index_dummy);
@@ -86,7 +86,7 @@ static int datadropper_init(bContext *C, wmOperator *op)
(RNA_property_editable(&ddr->ptr, ddr->prop) == false) ||
(RNA_property_type(ddr->prop) != PROP_POINTER))
{
MEM_freeN(ddr);
MEM_delete(ddr);
return false;
}
op->customdata = ddr;
@@ -118,15 +118,13 @@ static void datadropper_exit(bContext *C, wmOperator *op)
WM_cursor_modal_restore(win);
if (op->customdata) {
DataDropper *ddr = (DataDropper *)op->customdata;
DataDropper *ddr = static_cast<DataDropper *>(op->customdata);
if (ddr->art) {
ED_region_draw_cb_exit(ddr->art, ddr->draw_handle_pixel);
}
MEM_freeN(op->customdata);
op->customdata = nullptr;
MEM_delete(ddr);
}
WM_event_add_mousemove(win);

View File

@@ -148,7 +148,7 @@ static bool depthdropper_test(bContext *C, wmOperator *op)
static int depthdropper_init(bContext *C, wmOperator *op)
{
DepthDropper *ddr = MEM_cnew<DepthDropper>(__func__);
DepthDropper *ddr = MEM_new<DepthDropper>(__func__);
PropertyRNA *prop;
if ((prop = RNA_struct_find_property(op->ptr, "prop_data_path")) &&
RNA_property_is_set(op->ptr, prop))
@@ -161,7 +161,7 @@ static int depthdropper_init(bContext *C, wmOperator *op)
}
PointerRNA ctx_ptr = RNA_pointer_create(nullptr, &RNA_Context, C);
if (!depthdropper_get_path(&ctx_ptr, op, prop_data_path, &ddr->ptr, &ddr->prop)) {
MEM_freeN(ddr);
MEM_delete(ddr);
return false;
}
}
@@ -192,7 +192,7 @@ static int depthdropper_init(bContext *C, wmOperator *op)
(RNA_property_editable(&ddr->ptr, ddr->prop) == false) ||
(RNA_property_type(ddr->prop) != PROP_FLOAT))
{
MEM_freeN(ddr);
MEM_delete(ddr);
return false;
}
op->customdata = ddr;
@@ -218,10 +218,8 @@ static void depthdropper_exit(bContext *C, wmOperator *op)
if (ddr->art) {
ED_region_draw_cb_exit(ddr->art, ddr->draw_handle_pixel);
}
MEM_freeN(op->customdata);
op->customdata = nullptr;
MEM_delete(ddr);
}
}

View File

@@ -47,14 +47,14 @@ struct DriverDropper {
static bool driverdropper_init(bContext *C, wmOperator *op)
{
DriverDropper *ddr = MEM_cnew<DriverDropper>(__func__);
DriverDropper *ddr = MEM_new<DriverDropper>(__func__);
uiBut *but = UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &ddr->index);
if ((ddr->ptr.data == nullptr) || (ddr->prop == nullptr) ||
(RNA_property_driver_editable(&ddr->ptr, ddr->prop) == false) || (but->flag & UI_BUT_DRIVEN))
{
MEM_freeN(ddr);
MEM_delete(ddr);
return false;
}
op->customdata = ddr;
@@ -68,7 +68,11 @@ static void driverdropper_exit(bContext *C, wmOperator *op)
{
WM_cursor_modal_restore(CTX_wm_window(C));
MEM_SAFE_FREE(op->customdata);
if (op->customdata) {
DriverDropper *ddr = static_cast<DriverDropper *>(op->customdata);
op->customdata = nullptr;
MEM_delete(ddr);
}
}
static void driverdropper_sample(bContext *C, wmOperator *op, const wmEvent *event)