mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	returns in cStringIO.c. Thanks to Andrew Bennetts. This must be a backport candidate.
This commit is contained in:
		
							parent
							
								
									19e11c86a7
								
							
						
					
					
						commit
						10402a306f
					
				
					 4 changed files with 26 additions and 7 deletions
				
			
		|  | @ -44,6 +44,13 @@ def test_writelines(self): | |||
|         f.seek(0) | ||||
|         self.assertEqual(f.getvalue(), 'abc') | ||||
| 
 | ||||
|     def test_writelines_error(self): | ||||
|         def errorGen(): | ||||
|             yield 'a' | ||||
|             raise KeyboardInterrupt() | ||||
|         f = self.MODULE.StringIO() | ||||
|         self.assertRaises(KeyboardInterrupt, f.writelines, errorGen()) | ||||
| 
 | ||||
|     def test_truncate(self): | ||||
|         eq = self.assertEqual | ||||
|         f = self.MODULE.StringIO() | ||||
|  |  | |||
|  | @ -50,6 +50,7 @@ Reimer Behrends | |||
| Thomas Bellman | ||||
| Juan M. Bello Rivas | ||||
| Alexander Belopolsky | ||||
| Andrew Bennetts | ||||
| Andy Bensky | ||||
| Michel Van den Bergh | ||||
| Eric Beser | ||||
|  |  | |||
|  | @ -149,6 +149,9 @@ present). | |||
| Extension Modules | ||||
| ----------------- | ||||
| 
 | ||||
| - Patches #1298449 and #1298499: Add some missing checks for error | ||||
|   returns in cStringIO.c. | ||||
| 
 | ||||
| - Patch #1297028: fix segfault if call type on MultibyteCodec, | ||||
|   MultibyteStreamReader, or MultibyteStreamWriter | ||||
| 
 | ||||
|  |  | |||
|  | @ -241,7 +241,10 @@ IO_readlines(IOobject *self, PyObject *args) { | |||
| 		line = PyString_FromStringAndSize (output, n); | ||||
| 		if (!line)  | ||||
|                         goto err; | ||||
| 		PyList_Append (result, line); | ||||
| 		if (PyList_Append (result, line) == -1) { | ||||
| 			Py_DECREF (line); | ||||
| 			goto err; | ||||
| 		} | ||||
| 		Py_DECREF (line); | ||||
|                 length += n; | ||||
|                 if (hint > 0 && length >= hint) | ||||
|  | @ -443,10 +446,15 @@ O_writelines(Oobject *self, PyObject *args) { | |||
|                } | ||||
|                Py_DECREF(s); | ||||
|        } | ||||
| 
 | ||||
|        Py_DECREF(it); | ||||
| 
 | ||||
|        /* See if PyIter_Next failed */ | ||||
|        if (PyErr_Occurred()) | ||||
|                return NULL; | ||||
| 
 | ||||
|        Py_RETURN_NONE; | ||||
| } | ||||
| 
 | ||||
| static struct PyMethodDef O_methods[] = { | ||||
|   /* Common methods: */ | ||||
|   {"flush",     (PyCFunction)IO_flush,    METH_NOARGS,  IO_flush__doc__}, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Michael W. Hudson
						Michael W. Hudson