[pypy-svn] r73000 - in pypy/branch/cpython-extension/pypy/module/cpyext: . include
fijal at codespeak.net
fijal at codespeak.net
Sun Mar 28 00:06:30 CET 2010
Author: fijal
Date: Sun Mar 28 00:06:28 2010
New Revision: 73000
Added:
pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.c
Modified:
pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.h
pypy/branch/cpython-extension/pypy/module/cpyext/modsupport.py
Log:
copy PyModule_AddObject
Added: pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.c
==============================================================================
--- (empty file)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.c Sun Mar 28 00:06:28 2010
@@ -0,0 +1,31 @@
+#include <pypy_rename.h>
+#include <Python.h>
+
+int
+PyModule_AddObject(PyObject *m, const char *name, PyObject *o)
+{
+ PyObject *dict;
+ if (!PyModule_Check(m)) {
+ PyErr_SetString(PyExc_TypeError,
+ "PyModule_AddObject() needs module as first arg");
+ return -1;
+ }
+ if (!o) {
+ if (!PyErr_Occurred())
+ PyErr_SetString(PyExc_TypeError,
+ "PyModule_AddObject() needs non-NULL value");
+ return -1;
+ }
+
+ dict = PyModule_GetDict(m);
+ if (dict == NULL) {
+ /* Internal error -- modules must have a dict! */
+ PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
+ PyModule_GetName(m));
+ return -1;
+ }
+ if (PyDict_SetItemString(dict, name, o))
+ return -1;
+ Py_DECREF(o);
+ return 0;
+}
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.h
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.h (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/include/modsupport.h Sun Mar 28 00:06:28 2010
@@ -18,7 +18,7 @@
Py_InitModule4(name, methods, doc, (PyObject *)NULL, \
PYTHON_API_VERSION)
-
+int PyModule_AddObject(PyObject *m, const char *name, PyObject *o);
#ifdef __cplusplus
}
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/modsupport.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/modsupport.py (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/modsupport.py Sun Mar 28 00:06:28 2010
@@ -84,3 +84,4 @@
return w_dict
else:
PyErr_BadInternalCall(space)
+
More information about the Pypy-commit
mailing list