diff Modules/cStringIO.c @ 42502:9918989b733b

Merged revisions 56782-56847 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/p3yk ................ r56808 | kurt.kaiser | 2007-08-07 14:15:45 -0700 (Tue, 07 Aug 2007) | 2 lines Replace sys.exitfunc call with atexit call ................ r56835 | thomas.wouters | 2007-08-08 09:20:30 -0700 (Wed, 08 Aug 2007) | 8 lines Tests for dict comprehensions I forgot to 'svn add' when committing the actual feature. I was _sure_ I had checked in these new tests already, but I guess the checkin failed and I didn't notice. ................ r56847 | guido.van.rossum | 2007-08-09 07:03:34 -0700 (Thu, 09 Aug 2007) | 30 lines Merged revisions 56760-56846 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r56762 | georg.brandl | 2007-08-06 00:37:58 -0700 (Mon, 06 Aug 2007) | 2 lines Place #ifdef Py_USING_UNICODE around decode_unicode(). ........ r56763 | georg.brandl | 2007-08-06 00:39:09 -0700 (Mon, 06 Aug 2007) | 2 lines Replace unnecessary function call. ........ r56764 | georg.brandl | 2007-08-06 00:52:20 -0700 (Mon, 06 Aug 2007) | 2 lines Patch #1765839: add link to https+proxy urllib2 opener. ........ r56797 | georg.brandl | 2007-08-07 00:13:24 -0700 (Tue, 07 Aug 2007) | 2 lines Bug #1769002: fix a now-wrong sentence in the tutorial. ........ r56830 | georg.brandl | 2007-08-08 06:03:41 -0700 (Wed, 08 Aug 2007) | 3 lines Revert the fix for #1548891, it broke backwards compatibility with arbitrary read buffers. Fixes #1730114. ........ r56833 | georg.brandl | 2007-08-08 06:50:02 -0700 (Wed, 08 Aug 2007) | 2 lines Fix compilation warning. ........ ................
author Guido van Rossum <guido@python.org>
date Thu, 09 Aug 2007 14:26:58 +0000
parents 86c13ce60aad
children f324631462a2
line wrap: on
line diff
--- a/Modules/cStringIO.c	Thu Aug 09 01:03:29 2007 +0000
+++ b/Modules/cStringIO.c	Thu Aug 09 14:26:58 2007 +0000
@@ -664,8 +664,11 @@
   char *buf;
   Py_ssize_t size;
 
-  if (PyObject_AsCharBuffer(s, (const char **)&buf, &size) != 0)
-      return NULL;
+  if (PyObject_AsReadBuffer(s, (const void **)&buf, &size)) {
+    PyErr_Format(PyExc_TypeError, "expected read buffer, %.200s found",
+                 s->ob_type->tp_name);
+    return NULL;
+  }
 
   self = PyObject_New(Iobject, &Itype);
   if (!self) return NULL;