summaryrefslogtreecommitdiffstats
path: root/fixes/init-module.cocci
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2009-11-20 16:02:06 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2009-11-20 16:02:06 -0500
commit3a85de47fa4ce3ec6fa46a84de78f8e18727d99e (patch)
treef794c79f3a148a703aed4f5e797da80d9d5084a8 /fixes/init-module.cocci
parent1cc12923d5b14848bd153e0eee96770073483302 (diff)
download2to3c-3a85de47fa4ce3ec6fa46a84de78f8e18727d99e.tar.gz
2to3c-3a85de47fa4ce3ec6fa46a84de78f8e18727d99e.tar.xz
2to3c-3a85de47fa4ce3ec6fa46a84de78f8e18727d99e.zip
Start trying to fixup module initialization
Diffstat (limited to 'fixes/init-module.cocci')
-rw-r--r--fixes/init-module.cocci31
1 files changed, 31 insertions, 0 deletions
diff --git a/fixes/init-module.cocci b/fixes/init-module.cocci
new file mode 100644
index 0000000..fb59f45
--- /dev/null
+++ b/fixes/init-module.cocci
@@ -0,0 +1,31 @@
+@@
+type T;
+identifier FN;
+identifier MOD_VAR;
+expression MODULE_NAME, MODULE_METHODS, MODULE_DOC;
+@@
++ #if PY_MAJOR_VERSION >= 3
++static struct PyModuleDef moduledef = {
++ PyModuleDef_HEAD_INIT,
++ MODULE_NAME, /* m_name */
++ MODULE_DOC, /* m_doc */
++ 0, /* m_size */
++ MODULE_METHODS, /* m_methods */
++ NULL, /* m_reload */
++ NULL, /* m_traverse */
++ NULL, /* m_clear */
++ NULL, /* m_free */
++};
++ #endif
+
+T FN(void) {
+ ...
+
++ #if PY_MAJOR_VERSION >= 3
++ MOD_VAR = PyModule_Create(&moduledef);
++ #else
+ MOD_VAR = Py_InitModule3(MODULE_NAME, MODULE_METHODS, MODULE_DOC);
++ #endif
+
+ ...
+}