From: Martin v. Löwis Date: Fri, 9 Feb 2007 12:19:46 +0000 (+0000) Subject: Bug #1653736: Properly discard third argument to slot_nb_inplace_power. X-Git-Tag: v2.5.1c1~122 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4af42a63582a25ed69a6fd18d870891954bf082;p=python Bug #1653736: Properly discard third argument to slot_nb_inplace_power. --- diff --git a/Misc/NEWS b/Misc/NEWS index 4d9eaee317..8cecda5857 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,8 @@ What's New in Python 2.5.1c1? Core and builtins ----------------- +- Bug #1653736: Properly discard third argument to slot_nb_inplace_power. + - SF #151204: enumerate() now raises an Overflow error at sys.maxint items. - Bug #1377858: Fix the segfaulting of the interpreter when an object created diff --git a/Objects/typeobject.c b/Objects/typeobject.c index a8395ef9b2..c4a20fd5c9 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4427,7 +4427,13 @@ SLOT1(slot_nb_inplace_subtract, "__isub__", PyObject *, "O") SLOT1(slot_nb_inplace_multiply, "__imul__", PyObject *, "O") SLOT1(slot_nb_inplace_divide, "__idiv__", PyObject *, "O") SLOT1(slot_nb_inplace_remainder, "__imod__", PyObject *, "O") -SLOT1(slot_nb_inplace_power, "__ipow__", PyObject *, "O") +/* Can't use SLOT1 here, because nb_inplace_power is ternary */ +static PyObject * +slot_nb_inplace_power(PyObject *self, PyObject * arg1, PyObject *arg2) +{ + static PyObject *cache_str; + return call_method(self, "__ipow__", &cache_str, "(" "O" ")", arg1); +} SLOT1(slot_nb_inplace_lshift, "__ilshift__", PyObject *, "O") SLOT1(slot_nb_inplace_rshift, "__irshift__", PyObject *, "O") SLOT1(slot_nb_inplace_and, "__iand__", PyObject *, "O")