summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/opcode.h6
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS2
-rw-r--r--Python/ceval.c34
-rw-r--r--Python/compile.c28
5 files changed, 39 insertions, 32 deletions
diff --git a/Include/opcode.h b/Include/opcode.h
index 9508499..df086ef 100644
--- a/Include/opcode.h
+++ b/Include/opcode.h
@@ -142,9 +142,9 @@ extern "C" {
/* Support for opargs more than 16 bits long */
#define EXTENDED_ARG 143
-/* Comparison operator codes (argument to COMPARE_OP) */
-enum cmp_op {LT=Py_LT, LE=Py_LE, EQ=Py_EQ, NE=Py_NE, GT=Py_GT, GE=Py_GE,
- IN, NOT_IN, IS, IS_NOT, EXC_MATCH, BAD};
+
+enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE, PyCmp_GT=Py_GT, PyCmp_GE=Py_GE,
+ PyCmp_IN, PyCmp_NOT_IN, PyCmp_IS, PyCmp_IS_NOT, PyCmp_EXC_MATCH, PyCmp_BAD};
#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
diff --git a/Misc/ACKS b/Misc/ACKS
index e5d884d..ead7ec8 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -85,6 +85,7 @@ Tom Christiansen
Vadim Chugunov
David Cinege
Mike Clarkson
+Brad Clements
Steve Clift
Josh Cogliati
Dave Cole
diff --git a/Misc/NEWS b/Misc/NEWS
index 9ef6912..a0e3572 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@ Build
C API
+- The enumerators of cmp_op have been renamed to use the prefix PyCmp_.
+
- An old #define of ANY as void has been removed from pyport.h. This
hasn't been used since Python's pre-ANSI days, and the #define has
been marked as obsolete since then. SF bug 495548 says it created
diff --git a/Python/ceval.c b/Python/ceval.c
index e7ca82b..c59f31c 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1785,14 +1785,14 @@ eval_frame(PyFrameObject *f)
a = PyInt_AS_LONG(v);
b = PyInt_AS_LONG(w);
switch (oparg) {
- case LT: res = a < b; break;
- case LE: res = a <= b; break;
- case EQ: res = a == b; break;
- case NE: res = a != b; break;
- case GT: res = a > b; break;
- case GE: res = a >= b; break;
- case IS: res = v == w; break;
- case IS_NOT: res = v != w; break;
+ case PyCmp_LT: res = a < b; break;
+ case PyCmp_LE: res = a <= b; break;
+ case PyCmp_EQ: res = a == b; break;
+ case PyCmp_NE: res = a != b; break;
+ case PyCmp_GT: res = a > b; break;
+ case PyCmp_GE: res = a >= b; break;
+ case PyCmp_IS: res = v == w; break;
+ case PyCmp_IS_NOT: res = v != w; break;
default: goto slow_compare;
}
x = res ? Py_True : Py_False;
@@ -2986,6 +2986,10 @@ PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
result = 1;
cf->cf_flags |= compilerflags;
}
+ if (codeflags & CO_GENERATOR_ALLOWED) {
+ result = 1;
+ cf->cf_flags |= CO_GENERATOR_ALLOWED;
+ }
}
return result;
}
@@ -3470,21 +3474,21 @@ cmp_outcome(int op, register PyObject *v, register PyObject *w)
{
int res = 0;
switch (op) {
- case IS:
- case IS_NOT:
+ case PyCmp_IS:
+ case PyCmp_IS_NOT:
res = (v == w);
- if (op == (int) IS_NOT)
+ if (op == (int) PyCmp_IS_NOT)
res = !res;
break;
- case IN:
- case NOT_IN:
+ case PyCmp_IN:
+ case PyCmp_NOT_IN:
res = PySequence_Contains(w, v);
if (res < 0)
return NULL;
- if (op == (int) NOT_IN)
+ if (op == (int) PyCmp_NOT_IN)
res = !res;
break;
- case EXC_MATCH:
+ case PyCmp_EXC_MATCH:
res = PyErr_GivenExceptionMatches(v, w);
break;
default:
diff --git a/Python/compile.c b/Python/compile.c
index 4421284..ca3a47d 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -702,7 +702,7 @@ com_addbyte(struct compiling *c, int byte)
{
/*fprintf(stderr, "%3d: %3d\n", c->c_nexti, byte);*/
assert(byte >= 0 && byte <= 255);
- assert(c->c_code);
+ assert(c->c_code != 0);
if (com_check_size(&c->c_code, c->c_nexti)) {
c->c_errors++;
return;
@@ -2138,26 +2138,26 @@ cmp_type(node *n)
if (NCH(n) == 1) {
n = CHILD(n, 0);
switch (TYPE(n)) {
- case LESS: return LT;
- case GREATER: return GT;
+ case LESS: return PyCmp_LT;
+ case GREATER: return PyCmp_GT;
case EQEQUAL: /* == */
- case EQUAL: return EQ;
- case LESSEQUAL: return LE;
- case GREATEREQUAL: return GE;
- case NOTEQUAL: return NE; /* <> or != */
- case NAME: if (strcmp(STR(n), "in") == 0) return IN;
- if (strcmp(STR(n), "is") == 0) return IS;
+ case EQUAL: return PyCmp_EQ;
+ case LESSEQUAL: return PyCmp_LE;
+ case GREATEREQUAL: return PyCmp_GE;
+ case NOTEQUAL: return PyCmp_NE; /* <> or != */
+ case NAME: if (strcmp(STR(n), "in") == 0) return PyCmp_IN;
+ if (strcmp(STR(n), "is") == 0) return PyCmp_IS;
}
}
else if (NCH(n) == 2) {
switch (TYPE(CHILD(n, 0))) {
case NAME: if (strcmp(STR(CHILD(n, 1)), "in") == 0)
- return NOT_IN;
+ return PyCmp_NOT_IN;
if (strcmp(STR(CHILD(n, 0)), "is") == 0)
- return IS_NOT;
+ return PyCmp_IS_NOT;
}
}
- return BAD;
+ return PyCmp_BAD;
}
static void
@@ -2214,7 +2214,7 @@ com_comparison(struct compiling *c, node *n)
com_addbyte(c, ROT_THREE);
}
op = cmp_type(CHILD(n, i-1));
- if (op == BAD) {
+ if (op == PyCmp_BAD) {
com_error(c, PyExc_SystemError,
"com_comparison: unknown comparison op");
}
@@ -3247,7 +3247,7 @@ com_try_except(struct compiling *c, node *n)
com_addbyte(c, DUP_TOP);
com_push(c, 1);
com_node(c, CHILD(ch, 1));
- com_addoparg(c, COMPARE_OP, EXC_MATCH);
+ com_addoparg(c, COMPARE_OP, PyCmp_EXC_MATCH);
com_pop(c, 1);
com_addfwref(c, JUMP_IF_FALSE, &except_anchor);
com_addbyte(c, POP_TOP);