Mercurial > hg > orthanc-python
view CodeAnalysis/FunctionBody.mustache @ 128:5b59ebc267e1 fix-leak
fixed leaks in the initialization of the enums
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 30 Aug 2023 11:02:20 +0200 |
parents | e7ff5efb100d |
children | 8382c7dea471 |
line wrap: on
line source
{{#args}} {{python_type}} {{name}}{{initialization}}; {{/args}} {{#has_args}} if (!PyArg_ParseTuple(args, {{tuple_format}})) { PyErr_SetString(PyExc_TypeError, "Bad types for the arguments ({{count_args}} arguments expected)"); return NULL; } {{/has_args}} {{#return_long}} long value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} return PyLong_FromLong(value); {{/return_long}} {{#return_static_string}} const char* s = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} if (s == NULL) { Py_INCREF(Py_None); return Py_None; } else { return PyUnicode_FromString(s); } {{/return_static_string}} {{#return_dynamic_string}} OrthancPlugins::OrthancString s; s.Assign({{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}})); {{#args}}{{release}}{{/args}} if (s.GetContent() == NULL) { PythonLock::RaiseException(OrthancPluginErrorCode_InternalError); return NULL; } else { return PyUnicode_FromString(s.GetContent()); } {{/return_dynamic_string}} {{#return_void}} {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} Py_INCREF(Py_None); return Py_None; {{/return_void}} {{#return_error}} OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} if (code == OrthancPluginErrorCode_Success) { Py_INCREF(Py_None); return Py_None; } else { PythonLock::RaiseException(code); return NULL; } {{/return_error}} {{#return_object}} // This is the case of a constructor {{return_object}}* obj = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} if (obj == NULL) { PythonLock::RaiseException(OrthancPluginErrorCode_InternalError); return NULL; } else { PyObject *argList = Py_BuildValue("Lb", obj, false /* not borrowed */); PyObject *python = PyObject_CallObject((PyObject *) &sdk_{{return_object}}_Type, argList); Py_DECREF(argList); return python; } {{/return_object}} {{#return_bytes}} OrthancPlugins::MemoryBuffer buffer; OrthancPluginErrorCode code = {{c_function}}(OrthancPlugins::GetGlobalContext(), *buffer{{self}}{{call_args}}); {{#args}}{{release}}{{/args}} if (code == OrthancPluginErrorCode_Success) { return PyBytes_FromStringAndSize(buffer.GetData(), buffer.GetSize()); } else { PythonLock::RaiseException(code); return NULL; } {{/return_bytes}} {{#return_enumeration}} {{return_enumeration}} value = {{c_function}}(OrthancPlugins::GetGlobalContext(){{self}}{{call_args}}); {{#args}}{{release}}{{/args}} return PyLong_FromLong(value); {{/return_enumeration}}