Fix T102092: GPencil Sculpt Grab crash using Shift key
There was a problem with the hash table that was not created as expected. Also fixed an unreported memory leak in Grab tool not related to this crash but detected during debug.
This commit is contained in:
parent
e75be000e3
commit
2625c39ce7
Notes:
blender-bot
2023-02-14 09:29:42 +01:00
Referenced by issue #100749, Blender LTS: Maintenance Task 3.3 Referenced by issue #102092, GPencil: Crashes Sculpt > Smooth Brush with [Shift Key] and with Auto Masking Stroke On
|
@ -1202,6 +1202,9 @@ static bool gpencil_sculpt_brush_init(bContext *C, wmOperator *op)
|
|||
gso->automasking_strokes = BLI_ghash_ptr_new(__func__);
|
||||
}
|
||||
else {
|
||||
if (gso->automasking_strokes != NULL) {
|
||||
BLI_ghash_free(gso->automasking_strokes, NULL, NULL);
|
||||
}
|
||||
gso->automasking_strokes = NULL;
|
||||
}
|
||||
/* save mask */
|
||||
|
@ -1292,6 +1295,10 @@ static void gpencil_sculpt_brush_exit(bContext *C, wmOperator *op)
|
|||
}
|
||||
|
||||
default:
|
||||
if (gso->stroke_customdata != NULL) {
|
||||
BLI_ghash_free(gso->stroke_customdata, NULL, NULL);
|
||||
gso->stroke_customdata = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2075,6 +2082,20 @@ static void gpencil_sculpt_brush_apply_event(bContext *C, wmOperator *op, const
|
|||
if (gso->brush == NULL) {
|
||||
gso->brush = gso->brush_prev;
|
||||
}
|
||||
Brush *brush = gso->brush;
|
||||
if (brush->gpencil_settings->sculpt_mode_flag &
|
||||
(GP_SCULPT_FLAGMODE_AUTOMASK_STROKE | GP_SCULPT_FLAGMODE_AUTOMASK_LAYER |
|
||||
GP_SCULPT_FLAGMODE_AUTOMASK_MATERIAL)) {
|
||||
if (gso->automasking_strokes == NULL) {
|
||||
gso->automasking_strokes = BLI_ghash_ptr_new(__func__);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gso->automasking_strokes != NULL) {
|
||||
BLI_ghash_free(gso->automasking_strokes, NULL, NULL);
|
||||
}
|
||||
gso->automasking_strokes = NULL;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (gso->brush_prev != NULL) {
|
||||
|
|
Loading…
Reference in New Issue