Little stuff.

Add a missing DECREF in an obscure corner.  If the str() or repr() of
an object passed to a string interpolation -- e.g. "%s" % obj --
returns a non-string, the returned object was leaked.

Repair an indentation glitch.

Replace a bunch of PyString_AsString() calls (and their ilk) with
macros.
This commit is contained in:
Jeremy Hylton 2001-12-06 15:18:48 +00:00
parent 2554dd993a
commit 7802a53e38
1 changed files with 9 additions and 8 deletions

View File

@ -3146,15 +3146,15 @@ PyString_Format(PyObject *format, PyObject *args)
return NULL;
}
orig_args = args;
fmt = PyString_AsString(format);
fmtcnt = PyString_Size(format);
fmt = PyString_AS_STRING(format);
fmtcnt = PyString_GET_SIZE(format);
reslen = rescnt = fmtcnt + 100;
result = PyString_FromStringAndSize((char *)NULL, reslen);
if (result == NULL)
return NULL;
res = PyString_AsString(result);
if (PyTuple_Check(args)) {
arglen = PyTuple_Size(args);
arglen = PyTuple_GET_SIZE(args);
argidx = 0;
}
else {
@ -3170,7 +3170,7 @@ PyString_Format(PyObject *format, PyObject *args)
reslen += rescnt;
if (_PyString_Resize(&result, reslen) < 0)
return NULL;
res = PyString_AsString(result)
res = PyString_AS_STRING(result)
+ reslen - rescnt;
--rescnt;
}
@ -3351,7 +3351,7 @@ PyString_Format(PyObject *format, PyObject *args)
}
#endif
if (c == 's')
temp = PyObject_Str(v);
temp = PyObject_Str(v);
else
temp = PyObject_Repr(v);
if (temp == NULL)
@ -3359,10 +3359,11 @@ PyString_Format(PyObject *format, PyObject *args)
if (!PyString_Check(temp)) {
PyErr_SetString(PyExc_TypeError,
"%s argument has non-string str()");
Py_DECREF(temp);
goto error;
}
pbuf = PyString_AsString(temp);
len = PyString_Size(temp);
pbuf = PyString_AS_STRING(temp);
len = PyString_GET_SIZE(temp);
if (prec >= 0 && len > prec)
len = prec;
break;
@ -3441,7 +3442,7 @@ PyString_Format(PyObject *format, PyObject *args)
reslen += rescnt;
if (_PyString_Resize(&result, reslen) < 0)
return NULL;
res = PyString_AsString(result)
res = PyString_AS_STRING(result)
+ reslen - rescnt;
}
if (sign) {