Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r49430:cfb76a08edcb Date: 2011-11-15 02:21 -0500 http://bitbucket.org/pypy/pypy/changeset/cfb76a08edcb/
Log: merged upstream diff --git a/pypy/module/cpyext/include/eval.h b/pypy/module/cpyext/include/eval.h --- a/pypy/module/cpyext/include/eval.h +++ b/pypy/module/cpyext/include/eval.h @@ -14,8 +14,8 @@ PyObject * PyEval_CallFunction(PyObject *obj, const char *format, ...); PyObject * PyEval_CallMethod(PyObject *obj, const char *name, const char *format, ...); -PyObject * PyObject_CallFunction(PyObject *obj, char *format, ...); -PyObject * PyObject_CallMethod(PyObject *obj, char *name, char *format, ...); +PyObject * PyObject_CallFunction(PyObject *obj, const char *format, ...); +PyObject * PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...); PyObject * PyObject_CallFunctionObjArgs(PyObject *callable, ...); PyObject * PyObject_CallMethodObjArgs(PyObject *callable, PyObject *name, ...); diff --git a/pypy/module/cpyext/include/pycobject.h b/pypy/module/cpyext/include/pycobject.h --- a/pypy/module/cpyext/include/pycobject.h +++ b/pypy/module/cpyext/include/pycobject.h @@ -33,7 +33,7 @@ PyAPI_FUNC(void *) PyCObject_GetDesc(PyObject *); /* Import a pointer to a C object from a module using a PyCObject. */ -PyAPI_FUNC(void *) PyCObject_Import(char *module_name, char *cobject_name); +PyAPI_FUNC(void *) PyCObject_Import(const char *module_name, const char *cobject_name); /* Modify a C object. Fails (==0) if object has a destructor. */ PyAPI_FUNC(int) PyCObject_SetVoidPtr(PyObject *self, void *cobj); diff --git a/pypy/module/cpyext/include/pyerrors.h b/pypy/module/cpyext/include/pyerrors.h --- a/pypy/module/cpyext/include/pyerrors.h +++ b/pypy/module/cpyext/include/pyerrors.h @@ -11,8 +11,8 @@ (PyClass_Check((x)) || (PyType_Check((x)) && \ PyObject_IsSubclass((x), PyExc_BaseException))) -PyObject *PyErr_NewException(char *name, PyObject *base, PyObject *dict); -PyObject *PyErr_NewExceptionWithDoc(char *name, char *doc, PyObject *base, PyObject *dict); +PyObject *PyErr_NewException(const char *name, PyObject *base, PyObject *dict); +PyObject *PyErr_NewExceptionWithDoc(const char *name, const char *doc, PyObject *base, PyObject *dict); PyObject *PyErr_Format(PyObject *exception, const char *format, ...); /* These APIs aren't really part of the error implementation, but diff --git a/pypy/module/cpyext/modsupport.py b/pypy/module/cpyext/modsupport.py --- a/pypy/module/cpyext/modsupport.py +++ b/pypy/module/cpyext/modsupport.py @@ -54,9 +54,15 @@ modname = rffi.charp2str(name) state = space.fromcache(State) f_name, f_path = state.package_context - w_mod = PyImport_AddModule(space, f_name) + if f_name is not None: + modname = f_name + w_mod = PyImport_AddModule(space, modname) + state.package_context = None, None - dict_w = {'__file__': space.wrap(f_path)} + if f_path is not None: + dict_w = {'__file__': space.wrap(f_path)} + else: + dict_w = {} convert_method_defs(space, dict_w, methods, None, w_self, modname) for key, w_value in dict_w.items(): space.setattr(w_mod, space.wrap(key), w_value) diff --git a/pypy/module/cpyext/src/cobject.c b/pypy/module/cpyext/src/cobject.c --- a/pypy/module/cpyext/src/cobject.c +++ b/pypy/module/cpyext/src/cobject.c @@ -77,7 +77,7 @@ } void * -PyCObject_Import(char *module_name, char *name) +PyCObject_Import(const char *module_name, const char *name) { PyObject *m, *c; void *r = NULL; diff --git a/pypy/module/cpyext/src/modsupport.c b/pypy/module/cpyext/src/modsupport.c --- a/pypy/module/cpyext/src/modsupport.c +++ b/pypy/module/cpyext/src/modsupport.c @@ -541,7 +541,7 @@ } PyObject * -PyObject_CallFunction(PyObject *callable, char *format, ...) +PyObject_CallFunction(PyObject *callable, const char *format, ...) { va_list va; PyObject *args; @@ -558,7 +558,7 @@ } PyObject * -PyObject_CallMethod(PyObject *o, char *name, char *format, ...) +PyObject_CallMethod(PyObject *o, const char *name, const char *format, ...) { va_list va; PyObject *args; diff --git a/pypy/module/cpyext/src/pyerrors.c b/pypy/module/cpyext/src/pyerrors.c --- a/pypy/module/cpyext/src/pyerrors.c +++ b/pypy/module/cpyext/src/pyerrors.c @@ -21,7 +21,7 @@ } PyObject * -PyErr_NewException(char *name, PyObject *base, PyObject *dict) +PyErr_NewException(const char *name, PyObject *base, PyObject *dict) { char *dot; PyObject *modulename = NULL; @@ -72,7 +72,7 @@ /* Create an exception with docstring */ PyObject * -PyErr_NewExceptionWithDoc(char *name, char *doc, PyObject *base, PyObject *dict) +PyErr_NewExceptionWithDoc(const char *name, const char *doc, PyObject *base, PyObject *dict) { int result; PyObject *ret = NULL; _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit