[Bf-blender-cvs] [9f2271d354b] blender-v2.92-release: Fix T84739: Crash with curve brush in sculpt mode.

Bastien Montagne noreply at git.blender.org
Mon Jan 18 12:18:16 CET 2021


Commit: 9f2271d354b96f19f887c1b0e6f0a569073f2636
Author: Bastien Montagne
Date:   Mon Jan 18 12:15:46 2021 +0100
Branches: blender-v2.92-release
https://developer.blender.org/rB9f2271d354b96f19f887c1b0e6f0a569073f2636

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...

===================================================================

M	source/blender/editors/include/ED_paint.h
M	source/blender/editors/sculpt_paint/paint_curve.c
M	source/blender/editors/sculpt_paint/paint_curve_undo.c

===================================================================

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();
 }



More information about the Bf-blender-cvs mailing list