[Bf-blender-cvs] [fd3de8b] master: Fix T39424: VSE: Bake Sound to Curve CRASHES Blender

Bastien Montagne noreply at git.blender.org
Wed Mar 26 20:03:22 CET 2014


Commit: fd3de8b04224711b1502e4acde33d5f772dde544
Author: Bastien Montagne
Date:   Wed Mar 26 20:01:09 2014 +0100
https://developer.blender.org/rBfd3de8b04224711b1502e4acde33d5f772dde544

Fix T39424: VSE: Bake Sound to Curve CRASHES Blender

BKE_sequencer_offset_animdata() was simply assuming bezt member of fcurve was always valid, while it might be NULL (e.g. when fcurve is using FPoints instead, like when generated from sound file).

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

M	source/blender/blenkernel/intern/sequencer.c

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

diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 27ac7fd..82d46fe 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -4034,11 +4034,19 @@ void BKE_sequencer_offset_animdata(Scene *scene, Sequence *seq, int ofs)
 	for (fcu = scene->adt->action->curves.first; fcu; fcu = fcu->next) {
 		if (strstr(fcu->rna_path, "sequence_editor.sequences_all[") && strstr(fcu->rna_path, str)) {
 			unsigned int i;
-			for (i = 0; i < fcu->totvert; i++) {
-				BezTriple *bezt = &fcu->bezt[i];
-				bezt->vec[0][0] += ofs;
-				bezt->vec[1][0] += ofs;
-				bezt->vec[2][0] += ofs;
+			if (fcu->bezt) {
+				for (i = 0; i < fcu->totvert; i++) {
+					BezTriple *bezt = &fcu->bezt[i];
+					bezt->vec[0][0] += ofs;
+					bezt->vec[1][0] += ofs;
+					bezt->vec[2][0] += ofs;
+				}
+			}
+			if (fcu->fpt) {
+				for (i = 0; i < fcu->totvert; i++) {
+					FPoint *fpt = &fcu->fpt[i];
+					fpt->vec[0] += ofs;
+				}
 			}
 		}
 	}




More information about the Bf-blender-cvs mailing list