diff options
author | Bastien Montagne <bastien@blender.org> | 2021-01-18 14:15:46 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2021-01-18 14:15:46 +0300 |
commit | 9f2271d354b96f19f887c1b0e6f0a569073f2636 (patch) | |
tree | e66b47ec31c988bc3b53bb7d47bf90f41e3864c4 /source/blender | |
parent | c85317e66940fd3c00fa840b1987e704015ebee2 (diff) |
Fix T84739: Crash with curve brush in sculpt mode.
No idea why we did not pass context to `ED_paintcurve_undo_push_end`, it
is easily availbale everywhere...
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/include/ED_paint.h | 2 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_curve.c | 10 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_curve_undo.c | 4 |
3 files changed, 8 insertions, 8 deletions
diff --git a/source/blender/editors/include/ED_paint.h b/source/blender/editors/include/ED_paint.h index dec1f6844b2..6a28baa4ca1 100644 --- a/source/blender/editors/include/ED_paint.h +++ b/source/blender/editors/include/ED_paint.h @@ -101,7 +101,7 @@ struct ListBase *ED_image_paint_tile_list_get(void); /* paint_curve_undo.c */ void ED_paintcurve_undo_push_begin(const char *name); -void ED_paintcurve_undo_push_end(void); +void ED_paintcurve_undo_push_end(struct bContext *C); void ED_paintcurve_undosys_type(struct UndoType *ut); diff --git a/source/blender/editors/sculpt_paint/paint_curve.c b/source/blender/editors/sculpt_paint/paint_curve.c index c63af64a87a..6d805adda42 100644 --- a/source/blender/editors/sculpt_paint/paint_curve.c +++ b/source/blender/editors/sculpt_paint/paint_curve.c @@ -241,7 +241,7 @@ static void paintcurve_point_add(bContext *C, wmOperator *op, const int loc[2]) pcp[add_index].bez.h1 = HD_ALIGN; } - ED_paintcurve_undo_push_end(); + ED_paintcurve_undo_push_end(C); WM_paint_cursor_tag_redraw(window, region); } @@ -352,7 +352,7 @@ static int paintcurve_delete_point_exec(bContext *C, wmOperator *op) #undef DELETE_TAG - ED_paintcurve_undo_push_end(); + ED_paintcurve_undo_push_end(C); WM_paint_cursor_tag_redraw(window, region); @@ -463,12 +463,12 @@ static bool paintcurve_point_select( } if (!pcp) { - ED_paintcurve_undo_push_end(); + ED_paintcurve_undo_push_end(C); return false; } } - ED_paintcurve_undo_push_end(); + ED_paintcurve_undo_push_end(C); WM_paint_cursor_tag_redraw(window, region); @@ -614,7 +614,7 @@ static int paintcurve_slide_modal(bContext *C, wmOperator *op, const wmEvent *ev if (event->type == psd->event && event->val == KM_RELEASE) { MEM_freeN(psd); ED_paintcurve_undo_push_begin(op->type->name); - ED_paintcurve_undo_push_end(); + ED_paintcurve_undo_push_end(C); return OPERATOR_FINISHED; } diff --git a/source/blender/editors/sculpt_paint/paint_curve_undo.c b/source/blender/editors/sculpt_paint/paint_curve_undo.c index 0ffb392f826..a8e22f66734 100644 --- a/source/blender/editors/sculpt_paint/paint_curve_undo.c +++ b/source/blender/editors/sculpt_paint/paint_curve_undo.c @@ -177,10 +177,10 @@ void ED_paintcurve_undo_push_begin(const char *name) BKE_undosys_step_push_init_with_type(ustack, C, name, BKE_UNDOSYS_TYPE_PAINTCURVE); } -void ED_paintcurve_undo_push_end(void) +void ED_paintcurve_undo_push_end(bContext *C) { UndoStack *ustack = ED_undo_stack_get(); - BKE_undosys_step_push(ustack, NULL, NULL); + BKE_undosys_step_push(ustack, C, NULL); BKE_undosys_stack_limit_steps_and_memory_defaults(ustack); WM_file_tag_modified(); } |