[Python-checkins] python/dist/src/Modules cPickle.c,2.114,2.115

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Sun, 02 Feb 2003 10:29:35 -0800


Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv16785/Modules

Modified Files:
	cPickle.c 
Log Message:
Massive edits.  If p is a pointer to a struct, and p->f is a pointer to
a function, then

    p->f(arg1, arg2, ...)

is semantically the same as

    (*p->f)(arg1, arg2, ...)

Changed all instances of the latter into the former.  Given how often
the code embeds this kind of expression in an if test, the unnecessary
parens and dereferening operator were a real drag on readability.


Index: cPickle.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cPickle.c,v
retrieving revision 2.114
retrieving revision 2.115
diff -C2 -d -r2.114 -r2.115
*** cPickle.c	2 Feb 2003 18:08:34 -0000	2.114
--- cPickle.c	2 Feb 2003 18:29:33 -0000	2.115
***************
*** 687,691 ****
  	}
  
! 	if ((*self->write_func)(self, s, len) < 0)
  		return -1;
  
--- 687,691 ----
  	}
  
! 	if (self->write_func(self, s, len) < 0)
  		return -1;
  
***************
*** 771,775 ****
  	}
  
! 	if ((*self->write_func)(self, c_str, len) < 0)
  		goto finally;
  
--- 771,775 ----
  	}
  
! 	if (self->write_func(self, c_str, len) < 0)
  		goto finally;
  
***************
*** 951,955 ****
  {
  	static char none = NONE;
! 	if ((*self->write_func)(self, &none, 1) < 0)
  		return -1;
  
--- 951,955 ----
  {
  	static char none = NONE;
! 	if (self->write_func(self, &none, 1) < 0)
  		return -1;
  
***************
*** 992,996 ****
  		c_str[0] = INT;
  		PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%ld\n", l);
! 		if ((*self->write_func)(self, c_str, strlen(c_str)) < 0)
  			return -1;
  	}
--- 992,996 ----
  		c_str[0] = INT;
  		PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%ld\n", l);
! 		if (self->write_func(self, c_str, strlen(c_str)) < 0)
  			return -1;
  	}
***************
*** 1017,1021 ****
  		}
  
! 		if ((*self->write_func)(self, c_str, len) < 0)
  			return -1;
  	}
--- 1017,1021 ----
  		}
  
! 		if (self->write_func(self, c_str, len) < 0)
  			return -1;
  	}
***************
*** 1121,1133 ****
  		goto finally;
  
! 	if ((*self->write_func)(self, &l, 1) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self,
! 				PyString_AS_STRING((PyStringObject *)repr),
! 				size) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self, "\n", 1) < 0)
  		goto finally;
  
--- 1121,1133 ----
  		goto finally;
  
! 	if (self->write_func(self, &l, 1) < 0)
  		goto finally;
  
! 	if (self->write_func(self,
! 			     PyString_AS_STRING((PyStringObject *)repr),
! 			     			size) < 0)
  		goto finally;
  
! 	if (self->write_func(self, "\n", 1) < 0)
  		goto finally;
  
***************
*** 1233,1237 ****
  		*p = (unsigned char) (flo & 0xFF);
  
! 		if ((*self->write_func)(self, str, 9) < 0)
  			return -1;
  	}
--- 1233,1237 ----
  		*p = (unsigned char) (flo & 0xFF);
  
! 		if (self->write_func(self, str, 9) < 0)
  			return -1;
  	}
***************
*** 1241,1245 ****
  		PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%.17g\n", x);
  
! 		if ((*self->write_func)(self, c_str, strlen(c_str)) < 0)
  			return -1;
  	}
--- 1241,1245 ----
  		PyOS_snprintf(c_str + 1, sizeof(c_str) - 1, "%.17g\n", x);
  
! 		if (self->write_func(self, c_str, strlen(c_str)) < 0)
  			return -1;
  	}
***************
*** 1270,1280 ****
  		repr_str = PyString_AS_STRING((PyStringObject *)repr);
  
! 		if ((*self->write_func)(self, &string, 1) < 0)
  			goto err;
  
! 		if ((*self->write_func)(self, repr_str, len) < 0)
  			goto err;
  
! 		if ((*self->write_func)(self, "\n", 1) < 0)
  			goto err;
  
--- 1270,1280 ----
  		repr_str = PyString_AS_STRING((PyStringObject *)repr);
  
! 		if (self->write_func(self, &string, 1) < 0)
  			goto err;
  
! 		if (self->write_func(self, repr_str, len) < 0)
  			goto err;
  
! 		if (self->write_func(self, "\n", 1) < 0)
  			goto err;
  
***************
*** 1300,1304 ****
  		}
  
! 		if ((*self->write_func)(self, c_str, len) < 0)
  			return -1;
  
--- 1300,1304 ----
  		}
  
! 		if (self->write_func(self, c_str, len) < 0)
  			return -1;
  
***************
*** 1308,1313 ****
  		}
  		else {
! 			if ((*self->write_func)(self,
! 						PyString_AS_STRING((PyStringObject *)args), size) < 0)
  				return -1;
  		}
--- 1308,1315 ----
  		}
  		else {
! 			if (self->write_func(self,
! 					     PyString_AS_STRING(
! 					     	(PyStringObject *)args),
! 					     size) < 0)
  				return -1;
  		}
***************
*** 1388,1398 ****
  		repr_str = PyString_AS_STRING((PyStringObject *)repr);
  
! 		if ((*self->write_func)(self, &string, 1) < 0)
  			goto err;
  
! 		if ((*self->write_func)(self, repr_str, len) < 0)
  			goto err;
  
! 		if ((*self->write_func)(self, "\n", 1) < 0)
  			goto err;
  
--- 1390,1400 ----
  		repr_str = PyString_AS_STRING((PyStringObject *)repr);
  
! 		if (self->write_func(self, &string, 1) < 0)
  			goto err;
  
! 		if (self->write_func(self, repr_str, len) < 0)
  			goto err;
  
! 		if (self->write_func(self, "\n", 1) < 0)
  			goto err;
  
***************
*** 1414,1418 ****
  		len = 5;
  
! 		if ((*self->write_func)(self, c_str, len) < 0)
  			goto err;
  
--- 1416,1420 ----
  		len = 5;
  
! 		if (self->write_func(self, c_str, len) < 0)
  			goto err;
  
***************
*** 1423,1428 ****
  		}
  		else {
! 			if ((*self->write_func)(self, PyString_AS_STRING(repr),
! 						size) < 0)
  				goto err;
  		}
--- 1425,1430 ----
  		}
  		else {
! 			if (self->write_func(self, PyString_AS_STRING(repr),
! 					     size) < 0)
  				goto err;
  		}
***************
*** 1452,1456 ****
  	static char tuple = TUPLE;
  
! 	if ((*self->write_func)(self, &MARKv, 1) < 0)
  		goto finally;
  
--- 1454,1458 ----
  	static char tuple = TUPLE;
  
! 	if (self->write_func(self, &MARKv, 1) < 0)
  		goto finally;
  
***************
*** 1474,1478 ****
  				static char pop_mark = POP_MARK;
  
! 				if ((*self->write_func)(self, &pop_mark, 1) < 0)
  					goto finally;
  			}
--- 1476,1480 ----
  				static char pop_mark = POP_MARK;
  
! 				if (self->write_func(self, &pop_mark, 1) < 0)
  					goto finally;
  			}
***************
*** 1481,1485 ****
  
  				for (i = 0; i <= len; i++) {
! 					if ((*self->write_func)(self, &pop, 1) < 0)
  						goto finally;
  				}
--- 1483,1487 ----
  
  				for (i = 0; i <= len; i++) {
! 					if (self->write_func(self, &pop, 1) < 0)
  						goto finally;
  				}
***************
*** 1494,1498 ****
  	}
  
! 	if ((*self->write_func)(self, &tuple, 1) < 0) {
  		goto finally;
  	}
--- 1496,1500 ----
  	}
  
! 	if (self->write_func(self, &tuple, 1) < 0) {
  		goto finally;
  	}
***************
*** 1514,1518 ****
  	static char tuple = EMPTY_TUPLE;
  
! 	return (*self->write_func)(self, &tuple, 1);
  }
  
--- 1516,1520 ----
  	static char tuple = EMPTY_TUPLE;
  
! 	return self->write_func(self, &tuple, 1);
  }
  
***************
*** 1543,1547 ****
  		goto finally;
  
! 	if ((*self->write_func)(self, s, s_len) < 0)
  		goto finally;
  
--- 1545,1549 ----
  		goto finally;
  
! 	if (self->write_func(self, s, s_len) < 0)
  		goto finally;
  
***************
*** 1556,1560 ****
  
  	if ((using_appends = (self->bin && (len > 1))))
! 		if ((*self->write_func)(self, &MARKv, 1) < 0)
  			goto finally;
  
--- 1558,1562 ----
  
  	if ((using_appends = (self->bin && (len > 1))))
! 		if (self->write_func(self, &MARKv, 1) < 0)
  			goto finally;
  
***************
*** 1567,1571 ****
  
  		if (!using_appends) {
! 			if ((*self->write_func)(self, &append, 1) < 0)
  				goto finally;
  		}
--- 1569,1573 ----
  
  		if (!using_appends) {
! 			if (self->write_func(self, &append, 1) < 0)
  				goto finally;
  		}
***************
*** 1573,1577 ****
  
  	if (using_appends) {
! 		if ((*self->write_func)(self, &appends, 1) < 0)
  			goto finally;
  	}
--- 1575,1579 ----
  
  	if (using_appends) {
! 		if (self->write_func(self, &appends, 1) < 0)
  			goto finally;
  	}
***************
*** 1609,1613 ****
  	}
  
! 	if ((*self->write_func)(self, s, len) < 0)
  		goto finally;
  
--- 1611,1615 ----
  	}
  
! 	if (self->write_func(self, s, len) < 0)
  		goto finally;
  
***************
*** 1625,1629 ****
  
  	if ((using_setitems = (self->bin && (PyDict_Size(args) > 1))))
! 		if ((*self->write_func)(self, &MARKv, 1) < 0)
  			goto finally;
  
--- 1627,1631 ----
  
  	if ((using_setitems = (self->bin && (PyDict_Size(args) > 1))))
! 		if (self->write_func(self, &MARKv, 1) < 0)
  			goto finally;
  
***************
*** 1637,1641 ****
  
  		if (!using_setitems) {
! 			if ((*self->write_func)(self, &setitem, 1) < 0)
  				goto finally;
  		}
--- 1639,1643 ----
  
  		if (!using_setitems) {
! 			if (self->write_func(self, &setitem, 1) < 0)
  				goto finally;
  		}
***************
*** 1643,1647 ****
  
  	if (using_setitems) {
! 		if ((*self->write_func)(self, &setitems, 1) < 0)
  			goto finally;
  	}
--- 1645,1649 ----
  
  	if (using_setitems) {
! 		if (self->write_func(self, &setitems, 1) < 0)
  			goto finally;
  	}
***************
*** 1670,1674 ****
  		goto finally;
  
! 	if ((*self->write_func)(self, &MARKv, 1) < 0)
  		goto finally;
  
--- 1672,1676 ----
  		goto finally;
  
! 	if (self->write_func(self, &MARKv, 1) < 0)
  		goto finally;
  
***************
*** 1725,1744 ****
  		name_str   = PyString_AS_STRING((PyStringObject *)name);
  
! 		if ((*self->write_func)(self, &inst, 1) < 0)
  			goto finally;
  
! 		if ((*self->write_func)(self, module_str, module_size) < 0)
  			goto finally;
  
! 		if ((*self->write_func)(self, "\n", 1) < 0)
  			goto finally;
  
! 		if ((*self->write_func)(self, name_str, name_size) < 0)
  			goto finally;
  
! 		if ((*self->write_func)(self, "\n", 1) < 0)
  			goto finally;
  	}
! 	else if ((*self->write_func)(self, &obj, 1) < 0) {
  		goto finally;
  	}
--- 1727,1746 ----
  		name_str   = PyString_AS_STRING((PyStringObject *)name);
  
! 		if (self->write_func(self, &inst, 1) < 0)
  			goto finally;
  
! 		if (self->write_func(self, module_str, module_size) < 0)
  			goto finally;
  
! 		if (self->write_func(self, "\n", 1) < 0)
  			goto finally;
  
! 		if (self->write_func(self, name_str, name_size) < 0)
  			goto finally;
  
! 		if (self->write_func(self, "\n", 1) < 0)
  			goto finally;
  	}
! 	else if (self->write_func(self, &obj, 1) < 0) {
  		goto finally;
  	}
***************
*** 1771,1775 ****
  		goto finally;
  
! 	if ((*self->write_func)(self, &build, 1) < 0)
  		goto finally;
  
--- 1773,1777 ----
  		goto finally;
  
! 	if (self->write_func(self, &build, 1) < 0)
  		goto finally;
  
***************
*** 1844,1860 ****
  	Py_DECREF(klass);
  
! 	if ((*self->write_func)(self, &global, 1) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self, module_str, module_size) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self, "\n", 1) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self, name_str, name_size) < 0)
  		goto finally;
  
! 	if ((*self->write_func)(self, "\n", 1) < 0)
  		goto finally;
  
--- 1846,1862 ----
  	Py_DECREF(klass);
  
! 	if (self->write_func(self, &global, 1) < 0)
  		goto finally;
  
! 	if (self->write_func(self, module_str, module_size) < 0)
  		goto finally;
  
! 	if (self->write_func(self, "\n", 1) < 0)
  		goto finally;
  
! 	if (self->write_func(self, name_str, name_size) < 0)
  		goto finally;
  
! 	if (self->write_func(self, "\n", 1) < 0)
  		goto finally;
  
***************
*** 1896,1900 ****
  			}
  
! 			if ((*self->write_func)(self, &persid, 1) < 0)
  				goto finally;
  
--- 1898,1902 ----
  			}
  
! 			if (self->write_func(self, &persid, 1) < 0)
  				goto finally;
  
***************
*** 1902,1910 ****
  				goto finally;
  
! 			if ((*self->write_func)(self,
! 						PyString_AS_STRING((PyStringObject *)pid), size) < 0)
  				goto finally;
  
! 			if ((*self->write_func)(self, "\n", 1) < 0)
  				goto finally;
  
--- 1904,1914 ----
  				goto finally;
  
! 			if (self->write_func(self,
! 					     PyString_AS_STRING(
! 					     	(PyStringObject *)pid),
! 					     size) < 0)
  				goto finally;
  
! 			if (self->write_func(self, "\n", 1) < 0)
  				goto finally;
  
***************
*** 1913,1917 ****
  		}
  		else if (save(self, pid, 1) >= 0) {
! 			if ((*self->write_func)(self, &binpersid, 1) < 0)
  				res = -1;
  			else
--- 1917,1921 ----
  		}
  		else if (save(self, pid, 1) >= 0) {
! 			if (self->write_func(self, &binpersid, 1) < 0)
  				res = -1;
  			else
***************
*** 1943,1947 ****
  		return -1;
  
! 	if ((*self->write_func)(self, &reduce, 1) < 0)
  		return -1;
  
--- 1947,1951 ----
  		return -1;
  
! 	if (self->write_func(self, &reduce, 1) < 0)
  		return -1;
  
***************
*** 1961,1965 ****
  			return -1;
  
! 		if ((*self->write_func)(self, &build, 1) < 0)
  			return -1;
  	}
--- 1965,1969 ----
  			return -1;
  
! 		if (self->write_func(self, &build, 1) < 0)
  			return -1;
  	}
***************
*** 2756,2760 ****
  	long l;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
--- 2760,2764 ----
  	long l;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
***************
*** 2851,2855 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 4) < 0)
  		return -1;
  
--- 2855,2859 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 4) < 0)
  		return -1;
  
***************
*** 2863,2867 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 1) < 0)
  		return -1;
  
--- 2867,2871 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 1) < 0)
  		return -1;
  
***************
*** 2875,2879 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 2) < 0)
  		return -1;
  
--- 2879,2883 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 2) < 0)
  		return -1;
  
***************
*** 2888,2892 ****
  	int len, res = -1;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
--- 2892,2896 ----
  	int len, res = -1;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
***************
*** 2953,2957 ****
  	double d;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
--- 2957,2961 ----
  	double d;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
***************
*** 2988,2992 ****
  	char *p;
  
! 	if ((*self->read_func)(self, &p, 8) < 0)
  		return -1;
  
--- 2992,2996 ----
  	char *p;
  
! 	if (self->read_func(self, &p, 8) < 0)
  		return -1;
  
***************
*** 3052,3056 ****
  	char *s, *p;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
--- 3056,3060 ----
  	char *s, *p;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	if (!( s=pystrndup(s,len)))  return -1;
***************
*** 3094,3102 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 4) < 0) return -1;
  
  	l = calc_binint(s, 4);
  
! 	if ((*self->read_func)(self, &s, l) < 0)
  		return -1;
  
--- 3098,3106 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 4) < 0) return -1;
  
  	l = calc_binint(s, 4);
  
! 	if (self->read_func(self, &s, l) < 0)
  		return -1;
  
***************
*** 3116,3125 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 1) < 0)
  		return -1;
  
  	l = (unsigned char)s[0];
  
! 	if ((*self->read_func)(self, &s, l) < 0) return -1;
  
  	if (!( py_string = PyString_FromStringAndSize(s, l)))  return -1;
--- 3120,3129 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 1) < 0)
  		return -1;
  
  	l = (unsigned char)s[0];
  
! 	if (self->read_func(self, &s, l) < 0) return -1;
  
  	if (!( py_string = PyString_FromStringAndSize(s, l)))  return -1;
***************
*** 3138,3142 ****
  	char *s;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 1) return bad_readline();
  
--- 3142,3146 ----
  	char *s;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 1) return bad_readline();
  
***************
*** 3161,3169 ****
  	char *s;
  
! 	if ((*self->read_func)(self, &s, 4) < 0) return -1;
  
  	l = calc_binint(s, 4);
  
! 	if ((*self->read_func)(self, &s, l) < 0)
  		return -1;
  
--- 3165,3173 ----
  	char *s;
  
! 	if (self->read_func(self, &s, 4) < 0) return -1;
  
  	l = calc_binint(s, 4);
  
! 	if (self->read_func(self, &s, l) < 0)
  		return -1;
  
***************
*** 3345,3354 ****
  	if ((i = marker(self)) < 0) return -1;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	module_name = PyString_FromStringAndSize(s, len - 1);
  	if (!module_name)  return -1;
  
! 	if ((len = (*self->readline_func)(self, &s)) >= 0) {
  		if (len < 2) return bad_readline();
  		if ((class_name = PyString_FromStringAndSize(s, len - 1))) {
--- 3349,3358 ----
  	if ((i = marker(self)) < 0) return -1;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	module_name = PyString_FromStringAndSize(s, len - 1);
  	if (!module_name)  return -1;
  
! 	if ((len = self->readline_func(self, &s)) >= 0) {
  		if (len < 2) return bad_readline();
  		if ((class_name = PyString_FromStringAndSize(s, len - 1))) {
***************
*** 3382,3391 ****
  	char *s;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	module_name = PyString_FromStringAndSize(s, len - 1);
  	if (!module_name)  return -1;
  
! 	if ((len = (*self->readline_func)(self, &s)) >= 0) {
  		if (len < 2) {
  			Py_DECREF(module_name);
--- 3386,3395 ----
  	char *s;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  	module_name = PyString_FromStringAndSize(s, len - 1);
  	if (!module_name)  return -1;
  
! 	if ((len = self->readline_func(self, &s)) >= 0) {
  		if (len < 2) {
  			Py_DECREF(module_name);
***************
*** 3414,3418 ****
  
  	if (self->pers_func) {
! 		if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  		if (len < 2) return bad_readline();
  
--- 3418,3422 ----
  
  	if (self->pers_func) {
! 		if ((len = self->readline_func(self, &s)) < 0) return -1;
  		if (len < 2) return bad_readline();
  
***************
*** 3547,3551 ****
  	int rc;
  
! 	if ((len = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  
--- 3551,3555 ----
  	int rc;
  
! 	if ((len = self->readline_func(self, &s)) < 0) return -1;
  	if (len < 2) return bad_readline();
  
***************
*** 3574,3578 ****
  	int rc;
  
! 	if ((*self->read_func)(self, &s, 1) < 0) return -1;
  
  	key = (unsigned char)s[0];
--- 3578,3582 ----
  	int rc;
  
! 	if (self->read_func(self, &s, 1) < 0) return -1;
  
  	key = (unsigned char)s[0];
***************
*** 3602,3606 ****
  	int rc;
  
! 	if ((*self->read_func)(self, &s, 4) < 0) return -1;
  
  	c = (unsigned char)s[0];
--- 3606,3610 ----
  	int rc;
  
! 	if (self->read_func(self, &s, 4) < 0) return -1;
  
  	c = (unsigned char)s[0];
***************
*** 3636,3640 ****
  	char *s;
  
! 	if ((l = (*self->readline_func)(self, &s)) < 0) return -1;
  	if (l < 2) return bad_readline();
  	if (!( len=self->stack->length ))  return stackUnderflow();
--- 3640,3644 ----
  	char *s;
  
! 	if ((l = self->readline_func(self, &s)) < 0) return -1;
  	if (l < 2) return bad_readline();
  	if (!( len=self->stack->length ))  return stackUnderflow();
***************
*** 3655,3659 ****
  	int len;
  
! 	if ((*self->read_func)(self, &s, 1) < 0) return -1;
  	if (!( (len=self->stack->length) > 0 ))  return stackUnderflow();
  
--- 3659,3663 ----
  	int len;
  
! 	if (self->read_func(self, &s, 1) < 0) return -1;
  	if (!( (len=self->stack->length) > 0 ))  return stackUnderflow();
  
***************
*** 3677,3681 ****
  	int len;
  
! 	if ((*self->read_func)(self, &s, 4) < 0) return -1;
  	if (!( len=self->stack->length ))  return stackUnderflow();
  
--- 3681,3685 ----
  	int len;
  
! 	if (self->read_func(self, &s, 4) < 0) return -1;
  	if (!( len=self->stack->length ))  return stackUnderflow();
  
***************
*** 3933,3937 ****
  
  	while (1) {
! 		if ((*self->read_func)(self, &s, 1) < 0)
  			break;
  
--- 3937,3941 ----
  
  	while (1) {
! 		if (self->read_func(self, &s, 1) < 0)
  			break;
  
***************
*** 4215,4220 ****
  	if ((i = marker(self)) < 0) return -1;
  	Pdata_clear(self->stack, i);
! 	if ((*self->readline_func)(self, &s) < 0) return -1;
! 	if ((*self->readline_func)(self, &s) < 0) return -1;
  	PDATA_APPEND(self->stack, Py_None,-1);
  	return 0;
--- 4219,4224 ----
  	if ((i = marker(self)) < 0) return -1;
  	Pdata_clear(self->stack, i);
! 	if (self->readline_func(self, &s) < 0) return -1;
! 	if (self->readline_func(self, &s) < 0) return -1;
  	PDATA_APPEND(self->stack, Py_None,-1);
  	return 0;
***************
*** 4226,4231 ****
  	char *s;
  
! 	if ((*self->readline_func)(self, &s) < 0) return -1;
! 	if ((*self->readline_func)(self, &s) < 0) return -1;
  	PDATA_APPEND(self->stack, Py_None,-1);
  	return 0;
--- 4230,4235 ----
  	char *s;
  
! 	if (self->readline_func(self, &s) < 0) return -1;
! 	if (self->readline_func(self, &s) < 0) return -1;
  	PDATA_APPEND(self->stack, Py_None,-1);
  	return 0;
***************
*** 4261,4265 ****
  
  	while (1) {
! 		if ((*self->read_func)(self, &s, 1) < 0)
  			break;
  
--- 4265,4269 ----
  
  	while (1) {
! 		if (self->read_func(self, &s, 1) < 0)
  			break;