diff options
author | David Malcolm <dmalcolm@redhat.com> | 2010-03-05 19:06:29 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2010-03-05 19:06:29 -0500 |
commit | e4c495a8b6d9727de99b35bddf70f2c942e7f8b9 (patch) | |
tree | 0b41afa08d135b80f55195eb9cefb4a8bd643fa7 /lib2to3c/init-module.cocci | |
parent | 234a10d5bc133f9963db58fd4c08715fe43c2b94 (diff) | |
download | 2to3c-e4c495a8b6d9727de99b35bddf70f2c942e7f8b9.tar.gz 2to3c-e4c495a8b6d9727de99b35bddf70f2c942e7f8b9.tar.xz 2to3c-e4c495a8b6d9727de99b35bddf70f2c942e7f8b9.zip |
Diffstat (limited to 'lib2to3c/init-module.cocci')
-rw-r--r-- | lib2to3c/init-module.cocci | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lib2to3c/init-module.cocci b/lib2to3c/init-module.cocci new file mode 100644 index 0000000..ca3bcc9 --- /dev/null +++ b/lib2to3c/init-module.cocci @@ -0,0 +1,78 @@ +@ mod_init_fn @ +type T; +identifier FN; +identifier MOD_VAR; +expression MODULE_NAME, MODULE_METHODS, MODULE_DOC; +@@ +T FN(void) { + ... + MOD_VAR = Py_InitModule3(MODULE_NAME, MODULE_METHODS, MODULE_DOC); + ... +} + + + +@@ +identifier MOD_VAR; +expression MODULE_NAME, MODULE_METHODS, MODULE_DOC; +expression E; +@@ + if (E) { +- return; ++ return MOD_ERROR_VAL; + } + ... + MOD_VAR = Py_InitModule3(MODULE_NAME, MODULE_METHODS, MODULE_DOC); + + +@@ +identifier MOD_VAR; +expression MODULE_NAME, MODULE_METHODS, MODULE_DOC; +expression E; +@@ + MOD_VAR = Py_InitModule3(MODULE_NAME, MODULE_METHODS, MODULE_DOC); + ... + if (E) { +- return; ++ return MOD_ERROR_VAL; + } + + +@@ +type mod_init_fn.T; +identifier mod_init_fn.FN; +identifier mod_init_fn.MOD_VAR; +expression MODULE_NAME, MODULE_METHODS, MODULE_DOC; +expression E; +statement list SL; +@@ ++struct __HASH_IF_PY_MAJOR_VERSION_ge_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 */ ++}; ++struct __HASH_DEFINE__MOD_ERROR_VAL__NULL; ++struct __HASH_ELSE; ++struct __HASH_DEFINE__MOD_ERROR_VAL__; ++struct __HASH_ENDIF; + + T FN(void) { + ... + ++__HASH_IF_PY_MAJOR_VERSION_ge_3; ++ MOD_VAR = PyModule_Create(&moduledef); ++__HASH_ELSE; + MOD_VAR = Py_InitModule3(MODULE_NAME, MODULE_METHODS, MODULE_DOC); ++__HASH_ENDIF; + + ... + } + + |