Commit 450277fe authored by Fredrik Lundh's avatar Fredrik Lundh

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.
parent 0c93ff67
...@@ -1606,15 +1606,12 @@ the separator itself, and the part after it. If the separator is not\n\ ...@@ -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."); found, returns S and two empty strings.");
static PyObject * 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; Py_ssize_t len = PyString_GET_SIZE(self), sep_len, pos;
const char *str = PyString_AS_STRING(self), *sep; const char *str = PyString_AS_STRING(self), *sep;
PyObject *sep_obj;
PyObject * out; PyObject * out;
if (!PyArg_ParseTuple(args, "O:partition", &sep_obj))
return NULL;
if (PyString_Check(sep_obj)) { if (PyString_Check(sep_obj)) {
sep = PyString_AS_STRING(sep_obj); sep = PyString_AS_STRING(sep_obj);
sep_len = PyString_GET_SIZE(sep_obj); sep_len = PyString_GET_SIZE(sep_obj);
...@@ -3969,8 +3966,7 @@ string_methods[] = { ...@@ -3969,8 +3966,7 @@ string_methods[] = {
{"count", (PyCFunction)string_count, METH_VARARGS, count__doc__}, {"count", (PyCFunction)string_count, METH_VARARGS, count__doc__},
{"endswith", (PyCFunction)string_endswith, METH_VARARGS, {"endswith", (PyCFunction)string_endswith, METH_VARARGS,
endswith__doc__}, endswith__doc__},
{"partition", (PyCFunction)string_partition, METH_VARARGS, {"partition", (PyCFunction)string_partition, METH_O, partition__doc__},
partition__doc__},
{"find", (PyCFunction)string_find, METH_VARARGS, find__doc__}, {"find", (PyCFunction)string_find, METH_VARARGS, find__doc__},
{"index", (PyCFunction)string_index, METH_VARARGS, index__doc__}, {"index", (PyCFunction)string_index, METH_VARARGS, index__doc__},
{"lstrip", (PyCFunction)string_lstrip, METH_VARARGS, lstrip__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\ ...@@ -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."); found, returns S and two empty strings.");
static PyObject* 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); return PyUnicode_Partition((PyObject *)self, separator);
} }
...@@ -6620,7 +6615,7 @@ static PyMethodDef unicode_methods[] = { ...@@ -6620,7 +6615,7 @@ static PyMethodDef unicode_methods[] = {
{"count", (PyCFunction) unicode_count, METH_VARARGS, count__doc__}, {"count", (PyCFunction) unicode_count, METH_VARARGS, count__doc__},
{"expandtabs", (PyCFunction) unicode_expandtabs, METH_VARARGS, expandtabs__doc__}, {"expandtabs", (PyCFunction) unicode_expandtabs, METH_VARARGS, expandtabs__doc__},
{"find", (PyCFunction) unicode_find, METH_VARARGS, find__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__}, {"index", (PyCFunction) unicode_index, METH_VARARGS, index__doc__},
{"ljust", (PyCFunction) unicode_ljust, METH_VARARGS, ljust__doc__}, {"ljust", (PyCFunction) unicode_ljust, METH_VARARGS, ljust__doc__},
{"lower", (PyCFunction) unicode_lower, METH_NOARGS, lower__doc__}, {"lower", (PyCFunction) unicode_lower, METH_NOARGS, lower__doc__},
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment