Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-11-29 17:24:02 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-11-29 17:24:02 +0400
commit4e981dc566736b89e4e288d3dfd18f9d3a88dcaa (patch)
tree54956be2f24b2075db5b04e65d6e57cb93e89d76
parent186bdbd8d8543f7cb610e17e2487f7ca28a2663b (diff)
Fix #33345: Crash when using bpy.ops.sculpt.brush_stroke
It was kind of a regression in behavior in svn rev46862 which made it so blender crashes if stroke is done from the script. It should bring back the behavior back and made it so blender doesn't crash, however it's probably not full fix and some further work is needed to make call of stroke operator usable from the addon.
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 38dbdcd8337..25ea08a4bb1 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -3356,7 +3356,10 @@ static void sculpt_update_cache_invariants(bContext *C, Sculpt *sd, SculptSessio
sculpt_init_mirror_clipping(ob, ss);
/* Initial mouse location */
- copy_v2_v2(ss->cache->initial_mouse, mouse);
+ if (mouse)
+ copy_v2_v2(ss->cache->initial_mouse, mouse);
+ else
+ zero_v2(ss->cache->initial_mouse);
mode = RNA_enum_get(op->ptr, "mode");
cache->invert = mode == BRUSH_STROKE_INVERT;
@@ -3890,8 +3893,8 @@ static int sculpt_stroke_test_start(bContext *C, struct wmOperator *op,
const float mouse[2])
{
/* Don't start the stroke until mouse goes over the mesh.
- * note: event will only be null when re-executing the saved stroke. */
- if (over_mesh(C, op, mouse[0], mouse[1])) {
+ * note: mouse will only be null when re-executing the saved stroke. */
+ if (!mouse || over_mesh(C, op, mouse[0], mouse[1])) {
Object *ob = CTX_data_active_object(C);
SculptSession *ss = ob->sculpt;
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;