diff options
Diffstat (limited to 'plugins/pychrysalide/core/demanglers.c')
-rw-r--r-- | plugins/pychrysalide/core/demanglers.c | 70 |
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; } |