summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2001-12-28 10:22:15 (GMT)
committerMichael W. Hudson <mwh@python.net>2001-12-28 10:22:15 (GMT)
commit5fde86fad5cc7718d6b86353ea7f05b28bcc26bf (patch)
treefac1782737a5ba7e809d3a6f3fc952465c014e6e /Python
parent461540b85af6e475b1be414cc28455de5663fc0c (diff)
downloadcpython-5fde86fad5cc7718d6b86353ea7f05b28bcc26bf.zip
cpython-5fde86fad5cc7718d6b86353ea7f05b28bcc26bf.tar.gz
cpython-5fde86fad5cc7718d6b86353ea7f05b28bcc26bf.tar.bz2
Backport tim_one's checkin of version 2.302:
SF bug #496549 -Qnew and in-place division "/=". eval_frame(): Under -Qnew, INPLACE_DIVIDE wasn't getting handed off to INPLACE_TRUE_DIVIDE (like BINARY_DIVIDE was getting handed off to BINARY_TRUE_DIVIDE). Bugfix candidate.
Diffstat (limited to 'Python')
-rw-r--r--Python/ceval.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 2feb123..e7ca82b 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1091,9 +1091,22 @@ eval_frame(PyFrameObject *f)
break;
case INPLACE_DIVIDE:
+ if (!_Py_QnewFlag) {
+ w = POP();
+ v = POP();
+ x = PyNumber_InPlaceDivide(v, w);
+ Py_DECREF(v);
+ Py_DECREF(w);
+ PUSH(x);
+ if (x != NULL) continue;
+ break;
+ }
+ /* -Qnew is in effect: fall through to
+ INPLACE_TRUE_DIVIDE */
+ case INPLACE_TRUE_DIVIDE:
w = POP();
v = POP();
- x = PyNumber_InPlaceDivide(v, w);
+ x = PyNumber_InPlaceTrueDivide(v, w);
Py_DECREF(v);
Py_DECREF(w);
PUSH(x);
@@ -1110,16 +1123,6 @@ eval_frame(PyFrameObject *f)
if (x != NULL) continue;
break;
- case INPLACE_TRUE_DIVIDE:
- w = POP();
- v = POP();
- x = PyNumber_InPlaceTrueDivide(v, w);
- Py_DECREF(v);
- Py_DECREF(w);
- PUSH(x);
- if (x != NULL) continue;
- break;
-
case INPLACE_MODULO:
w = POP();
v = POP();