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:
authorAntonioya <blendergit@gmail.com>2018-09-19 18:20:39 +0300
committerAntonioya <blendergit@gmail.com>2018-09-19 18:20:55 +0300
commit03bb7cd9ad438d5925b84bc6819d83dfe6cbd05e (patch)
treee5a710664e5250c797f3bc8264ea750e25803f18 /source/blender/gpencil_modifiers
parent828c0e98139e81fea2ce0e40b0d1f95dd1d44eed (diff)
GP: Fix crash when select vertex group in modifiers
Diffstat (limited to 'source/blender/gpencil_modifiers')
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c12
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c2
2 files changed, 12 insertions, 2 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index 5aa9073eacb..8f5f84c2ee4 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -127,7 +127,7 @@ float get_modifier_point_weight(MDeformVert *dvert, bool inverse, int def_nr)
{
float weight = 1.0f;
- if (def_nr != -1) {
+ if ((dvert != NULL) && (def_nr != -1)) {
MDeformWeight *dw = defvert_find_index(dvert, def_nr);
weight = dw ? dw->weight : -1.0f;
if ((weight >= 0.0f) && (inverse == 1)) {
@@ -145,6 +145,16 @@ float get_modifier_point_weight(MDeformVert *dvert, bool inverse, int def_nr)
}
+ /* handle special empty groups */
+ if ((dvert == NULL) && (def_nr != -1)) {
+ if (inverse == 1) {
+ return 1.0f;
+ }
+ else {
+ return -1.0f;
+ }
+ }
+
return weight;
}
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
index 3b5f4dbf7c7..4d50468aaf4 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
@@ -108,7 +108,7 @@ static void deformStroke(
for (int i = 0; i < gps->totpoints; i++) {
bGPDspoint *pt = &gps->points[i];
- MDeformVert *dvert = &gps->dvert[i];
+ MDeformVert *dvert = gps->dvert != NULL ? &gps->dvert[i] : NULL;
float curvef = 1.0f;
/* verify vertex group */
const float weight = get_modifier_point_weight(dvert, (mmd->flag & GP_THICK_INVERT_VGROUP) != 0, def_nr);