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:
authorCampbell Barton <ideasman42@gmail.com>2016-07-31 04:43:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-07-31 04:46:36 +0300
commit01d5d2853bbbf07e4b64082e60fbb6d53799ed94 (patch)
tree74140b6ca832bbaf5ddc1e5812c2bade165a382c /source/blender/python/intern/bpy_rna_driver.c
parent55f481d05296077e061c2ade989c702c0fd2a68d (diff)
Py-Driver: re-use self PyObject when its unchanged.
Diffstat (limited to 'source/blender/python/intern/bpy_rna_driver.c')
-rw-r--r--source/blender/python/intern/bpy_rna_driver.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/python/intern/bpy_rna_driver.c b/source/blender/python/intern/bpy_rna_driver.c
index 98fc372f2fc..b4c0de51c04 100644
--- a/source/blender/python/intern/bpy_rna_driver.c
+++ b/source/blender/python/intern/bpy_rna_driver.c
@@ -78,7 +78,23 @@ PyObject *pyrna_driver_get_variable_value(
return driver_arg;
}
-PyObject *pyrna_driver_self_from_anim_rna(struct PathResolvedRNA *anim_rna)
+PyObject *pyrna_driver_self_from_anim_rna(PathResolvedRNA *anim_rna)
{
return pyrna_struct_CreatePyObject(&anim_rna->ptr);
}
+
+bool pyrna_driver_is_equal_anim_rna(const PathResolvedRNA *anim_rna, const PyObject *py_anim_rna)
+{
+ if (BPy_StructRNA_Check(py_anim_rna)) {
+ const PointerRNA *ptr_a = &anim_rna->ptr;
+ const PointerRNA *ptr_b = &(((const BPy_StructRNA *)py_anim_rna)->ptr);
+
+ if ((ptr_a->id.data == ptr_b->id.data) &&
+ (ptr_a->type == ptr_b->type) &&
+ (ptr_a->data == ptr_b->data))
+ {
+ return true;
+ }
+ }
+ return false;
+}