[Python-checkins] cpython: Issue 23744: Minor speed-up for deque.__bool__().
raymond.hettinger
python-checkins at python.org
Tue Mar 24 07:24:02 CET 2015
https://hg.python.org/cpython/rev/bb27dff7f83f
changeset: 95147:bb27dff7f83f
user: Raymond Hettinger <python at rcn.com>
date: Mon Mar 23 23:23:55 2015 -0700
summary:
Issue 23744: Minor speed-up for deque.__bool__().
files:
Modules/_collectionsmodule.c | 25 +++++++++++++++++++++++-
1 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1249,6 +1249,12 @@
PyDoc_STRVAR(sizeof_doc,
"D.__sizeof__() -- size of D in memory, in bytes");
+static int
+deque_bool(dequeobject *deque)
+{
+ return Py_SIZE(deque) != 0;
+}
+
static PyObject *
deque_get_maxlen(dequeobject *deque)
{
@@ -1276,6 +1282,23 @@
0, /* sq_inplace_repeat */
};
+static PyNumberMethods deque_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_remainder */
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* nb_positive */
+ 0, /* nb_absolute */
+ (inquiry)deque_bool, /* nb_bool */
+ 0, /* nb_invert */
+ 0, /* nb_lshift */
+ 0, /* nb_rshift */
+ };
+
+
/* deque object ********************************************************/
static PyObject *deque_iter(dequeobject *deque);
@@ -1340,7 +1363,7 @@
0, /* tp_setattr */
0, /* tp_reserved */
deque_repr, /* tp_repr */
- 0, /* tp_as_number */
+ &deque_as_number, /* tp_as_number */
&deque_as_sequence, /* tp_as_sequence */
0, /* tp_as_mapping */
PyObject_HashNotImplemented, /* tp_hash */
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list