[Python-checkins] CVS: python/dist/src/Modules cStringIO.c,2.18,2.19

Jeremy Hylton python-dev@python.org
2000年4月12日 18:04:04 -0400


Update of /projects/cvsroot/python/dist/src/Modules
In directory goon.cnri.reston.va.us:/home/jhylton/python/src/Modules
Modified Files:
	cStringIO.c 
Log Message:
raise TypeError when bad argument passed to cStringIO.StringIO
Index: cStringIO.c
===================================================================
RCS file: /projects/cvsroot/python/dist/src/Modules/cStringIO.c,v
retrieving revision 2.18
retrieving revision 2.19
diff -C2 -r2.18 -r2.19
*** cStringIO.c	2000年02月29日 13:59:22	2.18
--- cStringIO.c	2000年04月12日 22:04:01	2.19
***************
*** 579,585 ****
 char *buf;
 int size;
! 	
! UNLESS(buf=PyString_AsString(s)) return NULL;
! UNLESS(-1 != (size=PyString_Size(s))) return NULL;
 UNLESS(self = PyObject_NEW(Iobject, &Itype)) return NULL;
 Py_INCREF(s);
--- 579,590 ----
 char *buf;
 int size;
! 
! if (!PyString_Check(s)) {
! PyErr_Format(PyExc_TypeError, "expected string, %.200s found",
! 		 s->ob_type->tp_name);
! return NULL;
! }
! buf = PyString_AS_STRING(s);
! size = PyString_GET_SIZE(s);
 UNLESS(self = PyObject_NEW(Iobject, &Itype)) return NULL;
 Py_INCREF(s);
***************
*** 604,608 ****
 PyObject *s=0;
 
! UNLESS(PyArg_ParseTuple(args, "|O:StringIO", &s)) return NULL;
 if(s) return newIobject(s);
 return newOobject(128);
--- 609,614 ----
 PyObject *s=0;
 
! if (!PyArg_ParseTuple(args, "|O:StringIO", &s))
! return NULL;
 if(s) return newIobject(s);
 return newOobject(128);

AltStyle によって変換されたページ (->オリジナル) /