Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0f1451c

Browse files
committed
Issue 23744: Minor speed-up for deque.__bool__().
1 parent 929a14a commit 0f1451c

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

Modules/_collectionsmodule.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1249,6 +1249,12 @@ deque_sizeof(dequeobject *deque, void *unused)
12491249
PyDoc_STRVAR(sizeof_doc,
12501250
"D.__sizeof__() -- size of D in memory, in bytes");
12511251

1252+
static int
1253+
deque_bool(dequeobject *deque)
1254+
{
1255+
return Py_SIZE(deque) != 0;
1256+
}
1257+
12521258
static PyObject *
12531259
deque_get_maxlen(dequeobject *deque)
12541260
{
@@ -1276,6 +1282,23 @@ static PySequenceMethods deque_as_sequence = {
12761282
0, /* sq_inplace_repeat */
12771283
};
12781284

1285+
static PyNumberMethods deque_as_number = {
1286+
0, /* nb_add */
1287+
0, /* nb_subtract */
1288+
0, /* nb_multiply */
1289+
0, /* nb_remainder */
1290+
0, /* nb_divmod */
1291+
0, /* nb_power */
1292+
0, /* nb_negative */
1293+
0, /* nb_positive */
1294+
0, /* nb_absolute */
1295+
(inquiry)deque_bool, /* nb_bool */
1296+
0, /* nb_invert */
1297+
0, /* nb_lshift */
1298+
0, /* nb_rshift */
1299+
};
1300+
1301+
12791302
/* deque object ********************************************************/
12801303

12811304
static PyObject *deque_iter(dequeobject *deque);
@@ -1340,7 +1363,7 @@ static PyTypeObject deque_type = {
13401363
0, /* tp_setattr */
13411364
0, /* tp_reserved */
13421365
deque_repr, /* tp_repr */
1343-
0, /* tp_as_number */
1366+
&deque_as_number, /* tp_as_number */
13441367
&deque_as_sequence, /* tp_as_sequence */
13451368
0, /* tp_as_mapping */
13461369
PyObject_HashNotImplemented, /* tp_hash */

0 commit comments

Comments
 (0)