Cleanup: use macro to avoid repetition in BPY_init_modules

This commit is contained in:
Campbell Barton 2024-03-05 13:54:17 +11:00
parent ed5fb3eaba
commit d27ddccc60

@ -717,27 +717,24 @@ void BPy_init_modules(bContext *C)
/* Register methods and property get/set for RNA types. */
BPY_rna_types_extend_capi();
#define PYMODULE_ADD_METHOD(mod, meth) \
PyModule_AddObject(mod, (meth)->ml_name, (PyObject *)PyCFunction_New(meth, nullptr))
for (int i = 0; bpy_methods[i].ml_name; i++) {
PyMethodDef *m = &bpy_methods[i];
/* Currently there is no need to support these. */
BLI_assert((m->ml_flags & (METH_CLASS | METH_STATIC)) == 0);
PyModule_AddObject(mod, m->ml_name, (PyObject *)PyCFunction_New(m, nullptr));
PYMODULE_ADD_METHOD(mod, m);
}
/* Register functions (`bpy_rna.cc`). */
PyModule_AddObject(mod,
meth_bpy_register_class.ml_name,
(PyObject *)PyCFunction_New(&meth_bpy_register_class, nullptr));
PyModule_AddObject(mod,
meth_bpy_unregister_class.ml_name,
(PyObject *)PyCFunction_New(&meth_bpy_unregister_class, nullptr));
PYMODULE_ADD_METHOD(mod, &meth_bpy_register_class);
PYMODULE_ADD_METHOD(mod, &meth_bpy_unregister_class);
PyModule_AddObject(mod,
meth_bpy_owner_id_get.ml_name,
(PyObject *)PyCFunction_New(&meth_bpy_owner_id_get, nullptr));
PyModule_AddObject(mod,
meth_bpy_owner_id_set.ml_name,
(PyObject *)PyCFunction_New(&meth_bpy_owner_id_set, nullptr));
PYMODULE_ADD_METHOD(mod, &meth_bpy_owner_id_get);
PYMODULE_ADD_METHOD(mod, &meth_bpy_owner_id_set);
#undef PYMODULE_ADD_METHOD
/* add our own modules dir, this is a python package */
bpy_package_py = bpy_import_test("bpy");