mirror of https://github.com/python/cpython
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:
parent
70f05c5d7f
commit
2aa9a5dfdd
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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' */
|
||||||
|
|
|
@ -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));
|
||||||
|
|
Loading…
Reference in New Issue