Use macro versions instead of function versions when we already know the type.

This will hopefully get rid of some Coverity warnings, be a hint to
developers, and be marginally faster.

Some asserts were added when the type is currently known, but depends
on values from another function.
This commit is contained in:
Neal Norwitz 2006-03-20 01:53:23 +00:00
parent 70f05c5d7f
commit 2aa9a5dfdd
7 changed files with 19 additions and 16 deletions

View File

@ -942,7 +942,7 @@ strop_translate(PyObject *self, PyObject *args)
} }
table = table1; table = table1;
inlen = PyString_Size(input_obj); inlen = PyString_GET_SIZE(input_obj);
result = PyString_FromStringAndSize((char *)NULL, inlen); result = PyString_FromStringAndSize((char *)NULL, inlen);
if (result == NULL) if (result == NULL)
return NULL; return NULL;

View File

@ -388,15 +388,15 @@ class_str(PyClassObject *op)
Py_INCREF(name); Py_INCREF(name);
return name; return name;
} }
m = PyString_Size(mod); m = PyString_GET_SIZE(mod);
n = PyString_Size(name); n = PyString_GET_SIZE(name);
res = PyString_FromStringAndSize((char *)NULL, m+1+n); res = PyString_FromStringAndSize((char *)NULL, m+1+n);
if (res != NULL) { if (res != NULL) {
char *s = PyString_AsString(res); char *s = PyString_AS_STRING(res);
memcpy(s, PyString_AsString(mod), m); memcpy(s, PyString_AS_STRING(mod), m);
s += m; s += m;
*s++ = '.'; *s++ = '.';
memcpy(s, PyString_AsString(name), n); memcpy(s, PyString_AS_STRING(name), n);
} }
return res; return res;
} }

View File

@ -749,7 +749,7 @@ PyFrame_FastToLocals(PyFrameObject *f)
return; return;
PyErr_Fetch(&error_type, &error_value, &error_traceback); PyErr_Fetch(&error_type, &error_value, &error_traceback);
fast = f->f_localsplus; fast = f->f_localsplus;
j = PyTuple_Size(map); j = PyTuple_GET_SIZE(map);
if (j > f->f_nlocals) if (j > f->f_nlocals)
j = f->f_nlocals; j = f->f_nlocals;
if (f->f_nlocals) if (f->f_nlocals)
@ -787,7 +787,7 @@ PyFrame_LocalsToFast(PyFrameObject *f, int clear)
return; return;
PyErr_Fetch(&error_type, &error_value, &error_traceback); PyErr_Fetch(&error_type, &error_value, &error_traceback);
fast = f->f_localsplus; fast = f->f_localsplus;
j = PyTuple_Size(map); j = PyTuple_GET_SIZE(map);
if (j > f->f_nlocals) if (j > f->f_nlocals)
j = f->f_nlocals; j = f->f_nlocals;
if (f->f_nlocals) if (f->f_nlocals)

View File

@ -569,8 +569,9 @@ PyObject *PyString_DecodeEscape(const char *s,
if (!w) goto failed; if (!w) goto failed;
/* Append bytes to output buffer. */ /* Append bytes to output buffer. */
r = PyString_AsString(w); assert(PyString_Check(w));
rn = PyString_Size(w); r = PyString_AS_STRING(w);
rn = PyString_GET_SIZE(w);
memcpy(p, r, rn); memcpy(p, r, rn);
p += rn; p += rn;
Py_DECREF(w); Py_DECREF(w);
@ -2314,12 +2315,12 @@ string_translate(PyStringObject *self, PyObject *args)
} }
table = table1; table = table1;
inlen = PyString_Size(input_obj); inlen = PyString_GET_SIZE(input_obj);
result = PyString_FromStringAndSize((char *)NULL, inlen); result = PyString_FromStringAndSize((char *)NULL, inlen);
if (result == NULL) if (result == NULL)
return NULL; return NULL;
output_start = output = PyString_AsString(result); output_start = output = PyString_AsString(result);
input = PyString_AsString(input_obj); input = PyString_AS_STRING(input_obj);
if (dellen == 0) { if (dellen == 0) {
/* If no deletions are required, use faster code */ /* If no deletions are required, use faster code */

View File

@ -711,7 +711,9 @@ tok_stdin_decode(struct tok_state *tok, char **inp)
if (utf8 == NULL) if (utf8 == NULL)
goto error_clear; goto error_clear;
converted = new_string(PyString_AsString(utf8), PyString_Size(utf8)); assert(PyString_Check(utf8));
converted = new_string(PyString_AS_STRING(utf8),
PyString_GET_SIZE(utf8));
Py_DECREF(utf8); Py_DECREF(utf8);
if (converted == NULL) if (converted == NULL)
goto error_nomem; goto error_nomem;

View File

@ -1216,12 +1216,12 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf,
#endif #endif
if (!PyString_Check(v)) if (!PyString_Check(v))
continue; continue;
len = PyString_Size(v); len = PyString_GET_SIZE(v);
if (len + 2 + namelen + MAXSUFFIXSIZE >= buflen) { if (len + 2 + namelen + MAXSUFFIXSIZE >= buflen) {
Py_XDECREF(copy); Py_XDECREF(copy);
continue; /* Too long */ continue; /* Too long */
} }
strcpy(buf, PyString_AsString(v)); strcpy(buf, PyString_AS_STRING(v));
if (strlen(buf) != len) { if (strlen(buf) != len) {
Py_XDECREF(copy); Py_XDECREF(copy);
continue; /* v contains '\0' */ continue; /* v contains '\0' */

View File

@ -165,7 +165,7 @@ tb_displayline(PyObject *f, char *filename, int lineno, char *name)
} }
if (PyString_Check(v)) { if (PyString_Check(v)) {
size_t len; size_t len;
len = PyString_Size(v); len = PyString_GET_SIZE(v);
if (len + 1 + taillen >= MAXPATHLEN) if (len + 1 + taillen >= MAXPATHLEN)
continue; /* Too long */ continue; /* Too long */
strcpy(namebuf, PyString_AsString(v)); strcpy(namebuf, PyString_AsString(v));