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:
authorJoshua Leung <aligorith@gmail.com>2010-03-18 10:53:46 +0300
committerJoshua Leung <aligorith@gmail.com>2010-03-18 10:53:46 +0300
commit9ebde542ece4ce13c4f8375e879a6c497b4da3f7 (patch)
tree1b1f40f42372141f3220ada94ea1992ac3e49ac9
parent3566400dc53bcb2d07b760775d607330e3ea5d54 (diff)
Bugfix: Autokeying was non-functional after the Keying Sets refactor
- The RNA wrapping for the generate callback was still wrong, with the primary effect being that C-code calling this had unexpected consequences that were hard to debug. - Fixed some defective checks that meant that when specifying the RNA-pointers for the Keying Set to use (rather than using the Keying Set's own iterator callback) would never add any info.
-rw-r--r--source/blender/editors/animation/keyingsets.c9
-rw-r--r--source/blender/makesrna/intern/rna_animation.c4
2 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index b1f1cbbea1e..a93220aeb67 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -662,11 +662,14 @@ void ANIM_relative_keyingset_add_source (ListBase *dsources, ID *id, StructRNA *
tRKS_DSource *ds;
/* sanity checks
- * we must have at least one valid data pointer to use
+ * - we must have somewhere to output the data
+ * - we must have both srna+data (and with id too optionally), or id by itself only
*/
- if (ELEM(NULL, dsources, srna) || ((id == data) && (id == NULL)))
+ if (dsources == NULL)
return;
-
+ if (ELEM(NULL, srna, data) && (id == NULL))
+ return;
+
/* allocate new elem, and add to the list */
ds = MEM_callocN(sizeof(tRKS_DSource), "tRKS_DSource");
BLI_addtail(dsources, ds);
diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c
index 27f0dc5eafb..ebb251c32ca 100644
--- a/source/blender/makesrna/intern/rna_animation.c
+++ b/source/blender/makesrna/intern/rna_animation.c
@@ -131,7 +131,7 @@ static void RKS_GEN_rna_internal(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks,
RNA_parameter_set_lookup(&list, "ksi", &ksi);
RNA_parameter_set_lookup(&list, "context", &C);
RNA_parameter_set_lookup(&list, "ks", &ks);
- RNA_parameter_set_lookup(&list, "data", &data);
+ RNA_parameter_set_lookup(&list, "data", data);
/* execute the function */
ksi->ext.call(&ptr, func, &list);
@@ -404,7 +404,7 @@ static void rna_def_keyingset_info(BlenderRNA *brna)
RNA_def_property_flag(parm, PROP_REQUIRED);
parm= RNA_def_pointer(func, "ks", "KeyingSet", "", "");
RNA_def_property_flag(parm, PROP_REQUIRED);
- parm= RNA_def_pointer(func, "data", NULL, "", ""); // "AnyType"...
+ parm= RNA_def_pointer(func, "data", "AnyType", "", "");
RNA_def_property_flag(parm, PROP_REQUIRED|PROP_RNAPTR|PROP_NEVER_NULL);
}