Commit: 3633a6197e8a8ca5888e7e613d2f5a6b665bf823
Author: Falk David
Date: Fri Aug 21 14:25:10 2020 +0200
Branches: soc-2020-greasepencil-curve
https://developer.blender.org/rB3633a6197e8a8ca5888e7e613d2f5a6b665bf823
GPencil: Fix transform memory issue
===================================================================
M source/blender/editors/transform/transform_convert_gpencil.c
===================================================================
diff --git a/source/blender/editors/transform/transform_convert_gpencil.c
b/source/blender/editors/transform/transform_convert_gpencil.c
index 5e692798303..0a742ec4470 100644
--- a/source/blender/editors/transform/transform_convert_gpencil.c
+++ b/source/blender/editors/transform/transform_convert_gpencil.c
@@ -122,7 +122,7 @@ static void createTransGPencil_curves(bContext *C,
tc->data_len = 0;
/* Number of selected curve points */
- int tot_curve_points = 0, tot_sel_curve_points = 0, tot_points = 0,
tot_sel_points = 0;
+ uint32_t tot_curve_points = 0, tot_sel_curve_points = 0, tot_points = 0,
tot_sel_points = 0;
LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
/* Only editable and visible layers are considered. */
if (BKE_gpencil_layer_is_editable(gpl) && (gpl->actframe != NULL)) {
@@ -185,6 +185,11 @@ static void createTransGPencil_curves(bContext *C,
}
}
+ if (((is_prop_edit && !is_prop_edit_connected) ? tot_curve_points :
tot_sel_points) == 0) {
+ tc->data_len = 0;
+ return;
+ }
+
int data_len_pt = 0;
if (is_prop_edit) {
@@ -288,9 +293,10 @@ static void createTransGPencil_curves(bContext *C,
const short sel_flag = get_bezt_sel_triple_flag(bezt,
handles_visible);
/* Iterate over bezier triple */
for (int j = 0; j < 3; j++) {
- bool is_ctrl_point = j == 1;
- bezt_use |= sel_flag & (1 << j);
- if (is_prop_edit || bezt_use) {
+ bool is_ctrl_point = (j == 1);
+ bool sel = sel_flag & (1 << j);
+
+ if (is_prop_edit || sel) {
copy_v3_v3(td->iloc, bezt->vec[j]);
td->loc = bezt->vec[j];
bool rotate_around_ctrl = !handles_visible ||
@@ -353,6 +359,8 @@ static void createTransGPencil_curves(bContext *C,
td++;
tail++;
}
+
+ bezt_use |= sel;
}
/* Update the handle types so transformation is possible */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs