[Python-checkins] CVS: python/dist/src/Objects stringobject.c,2.79,2.80
Jeremy Hylton
python-dev@python.org
Tue, 11 Jul 2000 13:55:40 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory slayer.i.sourceforge.net:/tmp/cvs-serv10345/Objects
Modified Files:
stringobject.c
Log Message:
small updates to string_join:
use PyString_AS_STRING macro on local string object
when resizing string, make sure resized string will always be big enough
split string containing error message across two lines
add test to string_tests that causes resizing
Index: stringobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/stringobject.c,v
retrieving revision 2.79
retrieving revision 2.80
diff -C2 -r2.79 -r2.80
*** stringobject.c 2000/07/11 04:58:12 2.79
--- stringobject.c 2000/07/11 20:55:38 2.80
***************
*** 744,748 ****
int seqlen = 0;
int sz = 100;
! int i, slen;
PyObject *orig, *seq, *item;
--- 744,748 ----
int seqlen = 0;
int sz = 100;
! int i, slen, sz_incr;
PyObject *orig, *seq, *item;
***************
*** 771,775 ****
goto finally;
! p = PyString_AsString(res);
for (i = 0; i < seqlen; i++) {
--- 771,775 ----
goto finally;
! p = PyString_AS_STRING(res);
for (i = 0; i < seqlen; i++) {
***************
*** 782,786 ****
}
PyErr_Format(PyExc_TypeError,
! "sequence item %i: expected string, %.80s found",
i, item->ob_type->tp_name);
goto finally;
--- 782,787 ----
}
PyErr_Format(PyExc_TypeError,
! "sequence item %i: expected string,"
! " %.80s found",
i, item->ob_type->tp_name);
goto finally;
***************
*** 788,796 ****
slen = PyString_GET_SIZE(item);
while (reslen + slen + seplen >= sz) {
! if (_PyString_Resize(&res, sz*2)) {
goto finally;
}
! sz *= 2;
! p = PyString_AsString(res) + reslen;
}
if (i > 0) {
--- 789,799 ----
slen = PyString_GET_SIZE(item);
while (reslen + slen + seplen >= sz) {
! /* at least double the size of the string */
! sz_incr = slen + seplen > sz ? slen + seplen : sz;
! if (_PyString_Resize(&res, sz + sz_incr)) {
goto finally;
}
! sz += sz_incr;
! p = PyString_AS_STRING(res) + reslen;
}
if (i > 0) {