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:
-rw-r--r--source/blender/editors/animation/keyframes_general.c3
-rw-r--r--source/blender/editors/transform/transform_conversions.c2
-rw-r--r--source/blender/editors/transform/transform_generics.c7
3 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c
index 1d9c251d205..ae2c617bc80 100644
--- a/source/blender/editors/animation/keyframes_general.c
+++ b/source/blender/editors/animation/keyframes_general.c
@@ -372,6 +372,9 @@ void sample_fcurve (FCurve *fcu)
tempFrameValCache *value_cache, *fp;
int sfra, range;
int i, n, nIndex;
+
+ if(fcu->bezt==NULL) /* ignore baked */
+ return NULL;
/* find selected keyframes... once pair has been found, add keyframes */
for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 9d236bd47db..e5e6809bf13 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -2912,7 +2912,7 @@ static void posttrans_fcurve_clean (FCurve *fcu)
/* allocate memory for the cache */
// TODO: investigate using BezTriple columns instead?
- if (fcu->totvert == 0)
+ if (fcu->totvert == 0 || fcu->bezt==NULL)
return;
selcache= MEM_callocN(sizeof(float)*fcu->totvert, "FCurveSelFrameNums");
len= 0;
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 27eb48614d2..4ca821e2b01 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -323,10 +323,13 @@ static void animrecord_check_state (Scene *scene, ID *id, wmTimer *animtimer)
static int fcu_test_selected(FCurve *fcu)
{
- BezTriple *bezt;
+ BezTriple *bezt= fcu->bezt;
int i;
- for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
+ if(bezt==NULL) /* ignore baked */
+ return 0;
+
+ for (i=0; i < fcu->totvert; i++, bezt++) {
if (BEZSELECTED(bezt)) return 1;
}