mirror of
https://github.com/python/cpython.git
synced 2025-08-01 23:53:15 +00:00
needforspeed: use METH_O for argument handling, which made partition some
~15% faster for the current tests (which is noticable faster than a corre- sponding find call). thanks to neal-who-never-sleeps for the tip.
This commit is contained in:
parent
0c93ff6709
commit
450277fef5
2 changed files with 4 additions and 13 deletions
|
@ -1606,15 +1606,12 @@ the separator itself, and the part after it. If the separator is not\n\
|
|||
found, returns S and two empty strings.");
|
||||
|
||||
static PyObject *
|
||||
string_partition(PyStringObject *self, PyObject *args)
|
||||
string_partition(PyStringObject *self, PyObject *sep_obj)
|
||||
{
|
||||
Py_ssize_t len = PyString_GET_SIZE(self), sep_len, pos;
|
||||
const char *str = PyString_AS_STRING(self), *sep;
|
||||
PyObject *sep_obj;
|
||||
PyObject * out;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O:partition", &sep_obj))
|
||||
return NULL;
|
||||
if (PyString_Check(sep_obj)) {
|
||||
sep = PyString_AS_STRING(sep_obj);
|
||||
sep_len = PyString_GET_SIZE(sep_obj);
|
||||
|
@ -3969,8 +3966,7 @@ string_methods[] = {
|
|||
{"count", (PyCFunction)string_count, METH_VARARGS, count__doc__},
|
||||
{"endswith", (PyCFunction)string_endswith, METH_VARARGS,
|
||||
endswith__doc__},
|
||||
{"partition", (PyCFunction)string_partition, METH_VARARGS,
|
||||
partition__doc__},
|
||||
{"partition", (PyCFunction)string_partition, METH_O, partition__doc__},
|
||||
{"find", (PyCFunction)string_find, METH_VARARGS, find__doc__},
|
||||
{"index", (PyCFunction)string_index, METH_VARARGS, index__doc__},
|
||||
{"lstrip", (PyCFunction)string_lstrip, METH_VARARGS, lstrip__doc__},
|
||||
|
|
|
@ -6357,13 +6357,8 @@ the separator itself, and the part after it. If the separator is not\n\
|
|||
found, returns S and two empty strings.");
|
||||
|
||||
static PyObject*
|
||||
unicode_partition(PyUnicodeObject *self, PyObject *args)
|
||||
unicode_partition(PyUnicodeObject *self, PyObject *separator)
|
||||
{
|
||||
PyObject *separator;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "O:partition", &separator))
|
||||
return NULL;
|
||||
|
||||
return PyUnicode_Partition((PyObject *)self, separator);
|
||||
}
|
||||
|
||||
|
@ -6620,7 +6615,7 @@ static PyMethodDef unicode_methods[] = {
|
|||
{"count", (PyCFunction) unicode_count, METH_VARARGS, count__doc__},
|
||||
{"expandtabs", (PyCFunction) unicode_expandtabs, METH_VARARGS, expandtabs__doc__},
|
||||
{"find", (PyCFunction) unicode_find, METH_VARARGS, find__doc__},
|
||||
{"partition", (PyCFunction) unicode_partition, METH_VARARGS, partition__doc__},
|
||||
{"partition", (PyCFunction) unicode_partition, METH_O, partition__doc__},
|
||||
{"index", (PyCFunction) unicode_index, METH_VARARGS, index__doc__},
|
||||
{"ljust", (PyCFunction) unicode_ljust, METH_VARARGS, ljust__doc__},
|
||||
{"lower", (PyCFunction) unicode_lower, METH_NOARGS, lower__doc__},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue