[Bf-blender-cvs] [d9e567d3657] master: PyAPI: support methods for collection properties
Campbell Barton
noreply at git.blender.org
Thu Mar 4 13:15:54 CET 2021
Commit: d9e567d36573bf81549ea5c4914a65b3a21dafcc
Author: Campbell Barton
Date: Thu Mar 4 23:09:11 2021 +1100
Branches: master
https://developer.blender.org/rBd9e567d36573bf81549ea5c4914a65b3a21dafcc
PyAPI: support methods for collection properties
Previously only static methods were supported.
Now C/API functions added to collections can receive a 'self' argument.
===================================================================
M source/blender/python/intern/bpy_rna.c
===================================================================
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index a006b81cb60..bad6c4b4b56 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -4622,6 +4622,19 @@ static PyObject *pyrna_prop_collection_getattro(BPy_PropertyRNA *self, PyObject
if (ret == NULL) {
PyErr_Restore(error_type, error_value, error_traceback);
}
+ else {
+ if (Py_TYPE(ret) == &PyMethodDescr_Type) {
+ PyMethodDef *m = ((PyMethodDescrObject *)ret)->d_method;
+ /* TODO: #METH_CLASS */
+ if (m->ml_flags & METH_STATIC) {
+ /* Keep 'ret' as-is. */
+ }
+ else {
+ Py_DECREF(ret);
+ ret = PyCMethod_New(m, (PyObject *)self, NULL, NULL);
+ }
+ }
+ }
}
}
More information about the Bf-blender-cvs
mailing list