[Bf-blender-cvs] [018f2724f86] greasepencil-object: Fix segment fault in Noise Modifier

Antonio Vazquez noreply at git.blender.org
Fri Jun 22 16:09:51 CEST 2018


Commit: 018f2724f86df198e08f690cd35f2f03deb4298b
Author: Antonio Vazquez
Date:   Fri Jun 22 16:09:33 2018 +0200
Branches: greasepencil-object
https://developer.blender.org/rB018f2724f86df198e08f690cd35f2f03deb4298b

Fix segment fault in Noise Modifier

The random init seed was not done in the right function.

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

M	source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c

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

diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
index 4239164e3ac..e10b5d605e3 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
@@ -70,11 +70,6 @@ static void initData(GpencilModifierData *md)
 	gpmd->scene_frame = -999999;
 	gpmd->gp_frame = -999999;
 
-	/* Random generator, only init once. */
-	uint rng_seed = (uint)(PIL_check_seconds_timer_i() & UINT_MAX);
-	rng_seed ^= GET_UINT_FROM_POINTER(gpmd);
-	gpmd->rng = BLI_rng_new(rng_seed);
-
 	gpmd->vrand1 = 1.0;
 	gpmd->vrand2 = 1.0;
 }
@@ -83,7 +78,7 @@ static void freeData(GpencilModifierData *md)
 {
 	NoiseGpencilModifierData *mmd = (NoiseGpencilModifierData *)md;
 
-	if (mmd->rng) {
+	if (mmd->rng != NULL) {
 		BLI_rng_free(mmd->rng);
 	}
 }
@@ -116,6 +111,13 @@ static void deformStroke(
 	int vindex = defgroup_name_index(ob, mmd->vgname);
 	float weight = 1.0f;
 
+	/* Random generator, only init once. */
+	if (mmd->rng == NULL) {
+		uint rng_seed = (uint)(PIL_check_seconds_timer_i() & UINT_MAX);
+		rng_seed ^= GET_UINT_FROM_POINTER(mmd);
+		mmd->rng = BLI_rng_new(rng_seed);
+	}
+
 	if (!is_stroke_affected_by_modifier(ob,
 	        mmd->layername, mmd->pass_index, 3, gpl, gps,
 	        mmd->flag & GP_NOISE_INVERT_LAYER, mmd->flag & GP_NOISE_INVERT_PASS))



More information about the Bf-blender-cvs mailing list