mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Multi-phase init for more extensions
This commit is contained in:
parent
e02ae467a7
commit
76659d4b70
@ -273,22 +273,17 @@ static PyMethodDef sqlite_custom_methods[] = {
|
|||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct PyModuleDef sqlite_custom_module = {
|
static int
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
exec_module(PyObject *module) { return 0; }
|
||||||
/* m_name */ "sqlite_custom",
|
|
||||||
/* m_doc */ sqlite_custom_doc,
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ sqlite_custom_methods,
|
static struct PyModuleDef module_def = {
|
||||||
/* m_slots */ 0,
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
/* m_traverse */ 0,
|
.m_name = "sqlite_custom",
|
||||||
/* m_clear */ 0,
|
.m_doc = sqlite_custom_doc,
|
||||||
/* m_free */ 0,
|
.m_methods = sqlite_custom_methods,
|
||||||
|
.m_slots = slots,
|
||||||
};
|
};
|
||||||
CALIBRE_MODINIT_FUNC PyInit_sqlite_custom(void) {
|
|
||||||
PyObject *m;
|
CALIBRE_MODINIT_FUNC PyInit_sqlite_custom(void) { return PyModuleDef_Init(&module_def); }
|
||||||
m = PyModule_Create(&sqlite_custom_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return m;
|
|
||||||
}
|
|
||||||
|
@ -288,47 +288,34 @@ static PyTypeObject FreeTypeType = { // {{{
|
|||||||
|
|
||||||
static char freetype_doc[] = "Interface to freetype";
|
static char freetype_doc[] = "Interface to freetype";
|
||||||
|
|
||||||
static PyMethodDef freetype_methods[] = {
|
static int
|
||||||
{NULL, NULL, 0, NULL}
|
exec_module(PyObject *m) {
|
||||||
};
|
|
||||||
|
|
||||||
static struct PyModuleDef freetype_module = {
|
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
|
||||||
/* m_name */ "freetype",
|
|
||||||
/* m_doc */ freetype_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ freetype_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_freetype(void) {
|
|
||||||
PyObject *m;
|
|
||||||
|
|
||||||
FreeTypeType.tp_new = PyType_GenericNew;
|
FreeTypeType.tp_new = PyType_GenericNew;
|
||||||
if (PyType_Ready(&FreeTypeType) < 0) {
|
if (PyType_Ready(&FreeTypeType) < 0) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
FaceType.tp_new = PyType_GenericNew;
|
FaceType.tp_new = PyType_GenericNew;
|
||||||
if (PyType_Ready(&FaceType) < 0) {
|
if (PyType_Ready(&FaceType) < 0) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
m = PyModule_Create(&freetype_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
FreeTypeError = PyErr_NewException((char*)"freetype.FreeTypeError", NULL, NULL);
|
FreeTypeError = PyErr_NewException((char*)"freetype.FreeTypeError", NULL, NULL);
|
||||||
if (FreeTypeError == NULL) {
|
if (FreeTypeError == NULL) return -1;
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
PyModule_AddObject(m, "FreeTypeError", FreeTypeError);
|
PyModule_AddObject(m, "FreeTypeError", FreeTypeError);
|
||||||
|
|
||||||
Py_INCREF(&FreeTypeType);
|
Py_INCREF(&FreeTypeType);
|
||||||
PyModule_AddObject(m, "FreeType", (PyObject *)&FreeTypeType);
|
PyModule_AddObject(m, "FreeType", (PyObject *)&FreeTypeType);
|
||||||
|
Py_INCREF(&FaceType);
|
||||||
PyModule_AddObject(m, "Face", (PyObject *)&FaceType);
|
PyModule_AddObject(m, "Face", (PyObject *)&FaceType);
|
||||||
return m;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, (void*)exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {0};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_freetype(void) {
|
||||||
|
|
||||||
|
module_def.m_base = PyModuleDef_HEAD_INIT;
|
||||||
|
module_def.m_name = "freetype";
|
||||||
|
module_def.m_doc = freetype_doc;
|
||||||
|
module_def.m_slots = slots;
|
||||||
|
return PyModuleDef_Init(&module_def);
|
||||||
}
|
}
|
||||||
|
@ -203,27 +203,9 @@ static PyMethodDef lzx_methods[] = {
|
|||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct PyModuleDef lzx_module = {
|
static int
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
exec_module(PyObject *m) {
|
||||||
/* m_name */ "lzx",
|
if (PyType_Ready(&CompressorType) < 0) return -1;
|
||||||
/* m_doc */ lzx_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ lzx_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_lzx(void) {
|
|
||||||
if (PyType_Ready(&CompressorType) < 0) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
PyObject *m = PyModule_Create(&lzx_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
LZXError = PyErr_NewException("lzx.LZXError", NULL, NULL);
|
LZXError = PyErr_NewException("lzx.LZXError", NULL, NULL);
|
||||||
Py_INCREF(LZXError);
|
Py_INCREF(LZXError);
|
||||||
@ -232,5 +214,17 @@ CALIBRE_MODINIT_FUNC PyInit_lzx(void) {
|
|||||||
Py_INCREF(&CompressorType);
|
Py_INCREF(&CompressorType);
|
||||||
PyModule_AddObject(m, "Compressor", (PyObject *)&CompressorType);
|
PyModule_AddObject(m, "Compressor", (PyObject *)&CompressorType);
|
||||||
|
|
||||||
return m;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {
|
||||||
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
|
.m_name = "lzx",
|
||||||
|
.m_doc = lzx_doc,
|
||||||
|
.m_methods = lzx_methods,
|
||||||
|
.m_slots = slots,
|
||||||
|
};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_lzx(void) { return PyModuleDef_Init(&module_def); }
|
||||||
|
@ -77,29 +77,25 @@ static PyMethodDef msdes_methods[] = {
|
|||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct PyModuleDef msdes_module = {
|
static int
|
||||||
/* m_base */ PyModuleDef_HEAD_INIT,
|
exec_module(PyObject *m) {
|
||||||
/* m_name */ "msdes",
|
|
||||||
/* m_doc */ msdes_doc,
|
|
||||||
/* m_size */ -1,
|
|
||||||
/* m_methods */ msdes_methods,
|
|
||||||
/* m_slots */ 0,
|
|
||||||
/* m_traverse */ 0,
|
|
||||||
/* m_clear */ 0,
|
|
||||||
/* m_free */ 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
CALIBRE_MODINIT_FUNC PyInit_msdes(void) {
|
|
||||||
PyObject *m = PyModule_Create(&msdes_module);
|
|
||||||
if (m == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
MsDesError = PyErr_NewException("msdes.MsDesError", NULL, NULL);
|
MsDesError = PyErr_NewException("msdes.MsDesError", NULL, NULL);
|
||||||
Py_INCREF(MsDesError);
|
Py_INCREF(MsDesError);
|
||||||
PyModule_AddObject(m, "MsDesError", MsDesError);
|
PyModule_AddObject(m, "MsDesError", MsDesError);
|
||||||
PyModule_AddObject(m, "EN0", PyLong_FromLong(EN0));
|
PyModule_AddObject(m, "EN0", PyLong_FromLong(EN0));
|
||||||
PyModule_AddObject(m, "DE1", PyLong_FromLong(DE1));
|
PyModule_AddObject(m, "DE1", PyLong_FromLong(DE1));
|
||||||
|
|
||||||
return m;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyModuleDef_Slot slots[] = { {Py_mod_exec, exec_module}, {0, NULL} };
|
||||||
|
|
||||||
|
static struct PyModuleDef module_def = {
|
||||||
|
.m_base = PyModuleDef_HEAD_INIT,
|
||||||
|
.m_name = "msdes",
|
||||||
|
.m_doc = msdes_doc,
|
||||||
|
.m_methods = msdes_methods,
|
||||||
|
.m_slots = slots,
|
||||||
|
};
|
||||||
|
|
||||||
|
CALIBRE_MODINIT_FUNC PyInit_msdes(void) { return PyModuleDef_Init(&module_def); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user