#include "sigrokdecode-internal.h"
#include "config.h"
+/* type_decoder.c */
+extern SRD_PRIV PyTypeObject srd_Decoder_type;
-/* lives in type_decoder.c */
-extern PyTypeObject srd_Decoder_type;
+/* type_logic.c */
+extern SRD_PRIV PyTypeObject srd_logic_type;
-/* lives in type_logic.c */
-extern PyTypeObject srd_logic_type;
-
-
-/* When initialized, a reference to this module inside the python interpreter
+/*
+ * When initialized, a reference to this module inside the Python interpreter
* lives here.
*/
-PyObject *mod_sigrokdecode = NULL;
+SRD_PRIV PyObject *mod_sigrokdecode = NULL;
static struct PyModuleDef sigrokdecode_module = {
PyModuleDef_HEAD_INIT,
.m_size = -1,
};
-
+/* FIXME: SRD_PRIV causes issues on MinGW. Investigate. */
PyMODINIT_FUNC PyInit_sigrokdecode(void)
{
PyObject *mod;
- /* tp_new needs to be assigned here for compiler portability */
+ /* tp_new needs to be assigned here for compiler portability. */
srd_Decoder_type.tp_new = PyType_GenericNew;
if (PyType_Ready(&srd_Decoder_type) < 0)
return NULL;
mod = PyModule_Create(&sigrokdecode_module);
Py_INCREF(&srd_Decoder_type);
- if (PyModule_AddObject(mod, "Decoder", (PyObject *)&srd_Decoder_type) == -1)
+ if (PyModule_AddObject(mod, "Decoder",
+ (PyObject *)&srd_Decoder_type) == -1)
return NULL;
Py_INCREF(&srd_logic_type);
- if (PyModule_AddObject(mod, "srd_logic", (PyObject *)&srd_logic_type) == -1)
+ if (PyModule_AddObject(mod, "srd_logic",
+ (PyObject *)&srd_logic_type) == -1)
return NULL;
/* expose output types as symbols in the sigrokdecode module */
- if(PyModule_AddObject(mod, "OUTPUT_ANN",
- PyLong_FromLong(SRD_OUTPUT_ANN)) == -1)
+ if (PyModule_AddIntConstant(mod, "OUTPUT_ANN", SRD_OUTPUT_ANN) == -1)
return NULL;
- if(PyModule_AddObject(mod, "OUTPUT_PROTO",
- PyLong_FromLong(SRD_OUTPUT_PROTO)) == -1)
+ if (PyModule_AddIntConstant(mod, "OUTPUT_PROTO",
+ SRD_OUTPUT_PROTO) == -1)
return NULL;
- if(PyModule_AddObject(mod, "OUTPUT_BINARY",
- PyLong_FromLong(SRD_OUTPUT_BINARY)) == -1)
+ if (PyModule_AddIntConstant(mod, "OUTPUT_BINARY",
+ SRD_OUTPUT_BINARY) == -1)
return NULL;
mod_sigrokdecode = mod;
return mod;
}
-