diff Objects/fileobject.c @ 40626:4aee3f672f77

Merged the int/long unification branch, by very crude means (sorry Thomas!). I banged on the code (beyond what's in that branch) to make fewer tests fail; the only tests that fail now are: test_descr -- can't pickle ints?! test_pickletools -- ??? test_socket -- See python.org/sf/1619659 test_sqlite -- ??? I'll deal with those later.
author Guido van Rossum <guido@python.org>
date Sun, 14 Jan 2007 03:31:43 +0000
parents cc992d75d5b3
children 6ebad2a6b990
line wrap: on
line diff
--- a/Objects/fileobject.c	Sat Jan 13 23:54:39 2007 +0000
+++ b/Objects/fileobject.c	Sun Jan 14 03:31:43 2007 +0000
@@ -2136,7 +2136,7 @@
 		if (v == NULL)
 			PyErr_Clear();
 		else {
-			if (PyInt_Check(v))
+			if (PyInt_CheckExact(v))
 				oldflag = PyInt_AsLong(v);
 			assert(oldflag < INT_MAX);
 			Py_DECREF(v);
@@ -2301,6 +2301,8 @@
 		return -1;
 	}
 
+	if (fd == -1 && PyErr_Occurred())
+		return -1;
 	if (fd < 0) {
 		PyErr_Format(PyExc_ValueError,
 			     "file descriptor cannot be a negative integer (%i)",