Merge UNPACK_LIST and UNPACK_TUPLE into a single UNPACK_SEQUENCE, since they

did the same anyway.

I'm not sure what to do with Tools/compiler/compiler/* -- that isn't part of
distutils, is it ? Should it try to be compatible with old bytecode version ?
This commit is contained in:
Thomas Wouters 2000-08-11 22:15:52 +00:00
parent a8d7341f63
commit 0be5aab04d
6 changed files with 15 additions and 29 deletions

View file

@ -1165,8 +1165,7 @@ eval_code2(PyCodeObject *co, PyObject *globals, PyObject *locals,
default: switch (opcode) {
#endif
case UNPACK_TUPLE:
case UNPACK_LIST:
case UNPACK_SEQUENCE:
v = POP();
if (PyTuple_Check(v)) {
if (PyTuple_Size(v) != oparg) {

View file

@ -1729,27 +1729,14 @@ com_assign_trailer(struct compiling *c, node *n, int assigning)
}
static void
com_assign_tuple(struct compiling *c, node *n, int assigning)
com_assign_sequence(struct compiling *c, node *n, int assigning)
{
int i;
if (TYPE(n) != testlist)
REQ(n, exprlist);
if (assigning) {
i = (NCH(n)+1)/2;
com_addoparg(c, UNPACK_TUPLE, i);
com_push(c, i-1);
}
for (i = 0; i < NCH(n); i += 2)
com_assign(c, CHILD(n, i), assigning);
}
static void
com_assign_list(struct compiling *c, node *n, int assigning)
{
int i;
if (assigning) {
i = (NCH(n)+1)/2;
com_addoparg(c, UNPACK_LIST, i);
com_addoparg(c, UNPACK_SEQUENCE, i);
com_push(c, i-1);
}
for (i = 0; i < NCH(n); i += 2)
@ -1775,7 +1762,7 @@ com_assign(struct compiling *c, node *n, int assigning)
case exprlist:
case testlist:
if (NCH(n) > 1) {
com_assign_tuple(c, n, assigning);
com_assign_sequence(c, n, assigning);
return;
}
n = CHILD(n, 0);
@ -1843,7 +1830,7 @@ com_assign(struct compiling *c, node *n, int assigning)
"can't assign to []");
return;
}
com_assign_list(c, n, assigning);
com_assign_sequence(c, n, assigning);
return;
case NAME:
com_assign_name(c, CHILD(n, 0), assigning);
@ -2869,7 +2856,7 @@ com_fplist(struct compiling *c, node *n)
}
else {
int i = (NCH(n)+1)/2;
com_addoparg(c, UNPACK_TUPLE, i);
com_addoparg(c, UNPACK_SEQUENCE, i);
com_push(c, i-1);
for (i = 0; i < NCH(n); i += 2)
com_fpdef(c, CHILD(n, i));

View file

@ -66,7 +66,7 @@ extern time_t PyOS_GetLastModificationTime(char *, FILE *);
/* XXX Perhaps the magic number should be frozen and a version field
added to the .pyc file header? */
/* New way to come up with the magic number: (YEAR-1995), MONTH, DAY */
#define MAGIC (50428 | ((long)'\r'<<16) | ((long)'\n'<<24))
#define MAGIC (50811 | ((long)'\r'<<16) | ((long)'\n'<<24))
/* Magic word as global; note that _PyImport_Init() can change the
value of this global to accommodate for alterations of how the