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);
+            }
+          }
+        }
       }
     }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to