[Python-Dev] Why is nb_inplace_power ternary? (original) (raw)

"Martin v. Löwis" Martin.vonLoewis at hpi.uni-potsdam.de
Thu Feb 8 20:11:20 CET 2007


python at rcn.com schrieb:

1. For 2.5.1, rewrite slotnbinplacepower to raise an exception if the third argument is not None, and then invoke ipow with only one argument. Why would you change Py2.5? There is no bug here.

There is: slot_nb_inplace has the signature

static PyObject * slot_nb_inplace_power(PyObject *self, PyObject * arg1)

yet it is stored in as_number.nb_inplace_power, which is defined as

typedef PyObject * (*ternaryfunc)(PyObject *, PyObject *, PyObject *); ternaryfunc nb_inplace_power;

This has undefined behavior. Even if it had, slot_nb_inplace_power would silently discard its third argument.

Regards, Martin



More information about the Python-Dev mailing list