From 4a3aac478ce0dd16faea52d224d9a8024cd9ee57 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 17 Jan 2019 15:43:00 +1100 Subject: Cleanup: logic for eyedropper free on failure Although currently unused, if exec was called and failed it would leak. --- source/blender/editors/interface/interface_eyedropper_datablock.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/editors/interface/interface_eyedropper_datablock.c') diff --git a/source/blender/editors/interface/interface_eyedropper_datablock.c b/source/blender/editors/interface/interface_eyedropper_datablock.c index 33d69524b77..f39c8bdf889 100644 --- a/source/blender/editors/interface/interface_eyedropper_datablock.c +++ b/source/blender/editors/interface/interface_eyedropper_datablock.c @@ -86,7 +86,6 @@ static void datadropper_draw_cb(const struct bContext *C, ARegion *ar, void *arg static int datadropper_init(bContext *C, wmOperator *op) { - DataDropper *ddr; int index_dummy; StructRNA *type; @@ -96,7 +95,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); - op->customdata = ddr = MEM_callocN(sizeof(DataDropper), "DataDropper"); + DataDropper *ddr = MEM_callocN(sizeof(DataDropper), __func__); UI_context_active_but_prop_get(C, &ddr->ptr, &ddr->prop, &index_dummy); @@ -105,8 +104,10 @@ 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); return false; } + op->customdata = ddr; ddr->art = art; ddr->draw_handle_pixel = ED_region_draw_cb_activate(art, datadropper_draw_cb, ddr, REGION_DRAW_POST_PIXEL); @@ -289,7 +290,6 @@ static int datadropper_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED return OPERATOR_RUNNING_MODAL; } else { - datadropper_exit(C, op); return OPERATOR_CANCELLED; } } -- cgit v1.2.3