[Python-checkins] r46278 - python/trunk/Objects/stringobject.c python/trunk/Objects/unicodeobject.c

fredrik.lundh python-checkins at python.org
Fri May 26 11:46:59 CEST 2006


Author: fredrik.lundh
Date: Fri May 26 11:46:59 2006
New Revision: 46278
Modified:
 python/trunk/Objects/stringobject.c
 python/trunk/Objects/unicodeobject.c
Log:
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.
Modified: python/trunk/Objects/stringobject.c
==============================================================================
--- python/trunk/Objects/stringobject.c	(original)
+++ python/trunk/Objects/stringobject.c	Fri May 26 11:46:59 2006
@@ -1606,15 +1606,12 @@
 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 @@
 	{"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__},
Modified: python/trunk/Objects/unicodeobject.c
==============================================================================
--- python/trunk/Objects/unicodeobject.c	(original)
+++ python/trunk/Objects/unicodeobject.c	Fri May 26 11:46:59 2006
@@ -6357,13 +6357,8 @@
 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 @@
 {"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__},


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /