summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/core/demanglers.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/pychrysalide/core/demanglers.c')
-rw-r--r--plugins/pychrysalide/core/demanglers.c70
1 files changed, 10 insertions, 60 deletions
diff --git a/plugins/pychrysalide/core/demanglers.c b/plugins/pychrysalide/core/demanglers.c
index 2c98ee1..216b7e1 100644
--- a/plugins/pychrysalide/core/demanglers.c
+++ b/plugins/pychrysalide/core/demanglers.c
@@ -89,83 +89,33 @@ static PyObject *py_demanglers_get_for_type(PyObject *self, PyObject *args)
* *
* Paramètres : - *
* *
-* Description : Fournit un accès à une définition de type à diffuser. *
+* Description : Définit une extension du module 'core' à compléter. *
* *
-* Retour : Définition d'objet pour Python. *
+* Retour : Bilan de l'opération. *
* *
* Remarques : - *
* *
******************************************************************************/
-PyTypeObject *get_python_demanglers_type(void)
+bool populate_core_module_with_demanglers(void)
{
+ bool result; /* Bilan à retourner */
+ PyObject *module; /* Module à recompléter */
+
static PyMethodDef py_demanglers_methods[] = {
{ "get_for_type", py_demanglers_get_for_type,
- METH_VARARGS | METH_STATIC,
+ METH_VARARGS,
"get_for_type(key, /)\n--\n\nCreate a new demangler for a given type of encoding."
},
{ NULL }
};
- static PyTypeObject py_demanglers_type = {
-
- PyVarObject_HEAD_INIT(NULL, 0)
-
- .tp_name = "pychrysalide.core.demanglers",
- .tp_basicsize = sizeof(PyObject),
-
- .tp_flags = Py_TPFLAGS_DEFAULT,
-
- .tp_doc = "Access to the code demanglers",
-
- .tp_methods = py_demanglers_methods
-
- };
-
- return &py_demanglers_type;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : module = module dont la définition est à compléter. *
-* *
-* Description : Prend en charge l'objet 'pychrysalide.core.demanglers'. *
-* *
-* Retour : Bilan de l'opération. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-bool ensure_python_demanglers_is_registered(void)
-{
- PyTypeObject *type; /* Type Python de 'demanglers' */
- PyObject *module; /* Module à recompléter */
- int ret; /* Bilan d'un appel */
-
- type = get_python_demanglers_type();
-
- if (!PyType_HasFeature(type, Py_TPFLAGS_READY))
- {
- type->tp_new = PyType_GenericNew;
-
- if (PyType_Ready(type) != 0)
- return false;
-
- module = get_access_to_python_module("pychrysalide.core");
+ module = get_access_to_python_module("pychrysalide.core");
- Py_INCREF(type);
- ret = PyModule_AddObject(module, "demanglers", (PyObject *)type);
+ result = register_python_module_methods(module, py_demanglers_methods);
- if (ret != 0)
- return false;
-
- }
-
- return true;
+ return result;
}