- Py_INCREF(&srd_Decoder_type);
- 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)
- return NULL;
-
- /* expose output types as symbols in the sigrokdecode module */
- if (PyModule_AddIntConstant(mod, "OUTPUT_ANN", SRD_OUTPUT_ANN) == -1)
- return NULL;
- if (PyModule_AddIntConstant(mod, "OUTPUT_PYTHON",
- SRD_OUTPUT_PYTHON) == -1)
- return NULL;
- if (PyModule_AddIntConstant(mod, "OUTPUT_BINARY",
- SRD_OUTPUT_BINARY) == -1)
- return NULL;
- if (PyModule_AddIntConstant(mod, "SRD_CONF_SAMPLERATE",
- SRD_CONF_SAMPLERATE) == -1)
- return NULL;
+ if (!mod)
+ goto err_out;
+
+ Decoder_type = srd_Decoder_type_new();
+ if (!Decoder_type)
+ goto err_out;
+ if (PyModule_AddObject(mod, "Decoder", Decoder_type) < 0)
+ goto err_out;
+
+ /* Expose output types as symbols in the sigrokdecode module */
+ if (PyModule_AddIntConstant(mod, "OUTPUT_ANN", SRD_OUTPUT_ANN) < 0)
+ goto err_out;
+ if (PyModule_AddIntConstant(mod, "OUTPUT_PYTHON", SRD_OUTPUT_PYTHON) < 0)
+ goto err_out;
+ if (PyModule_AddIntConstant(mod, "OUTPUT_BINARY", SRD_OUTPUT_BINARY) < 0)
+ goto err_out;
+ if (PyModule_AddIntConstant(mod, "OUTPUT_META", SRD_OUTPUT_META) < 0)
+ goto err_out;
+ /* Expose meta input symbols. */
+ if (PyModule_AddIntConstant(mod, "SRD_CONF_SAMPLERATE", SRD_CONF_SAMPLERATE) < 0)
+ goto err_out;