Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 2503:4dd1af0ddef0 legacy-trunk
various tuple related optimizations; remove unused b/w compat code from ceval.c
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 09 Mar 1995 12:12:11 +0000 |
| parents | 94bf2f05da31 |
| children | d5d27dad7fea |
line wrap: on
line diff
--- a/Python/ceval.c Thu Mar 09 12:11:31 1995 +0000 +++ b/Python/ceval.c Thu Mar 09 12:12:11 1995 +0000 @@ -782,7 +782,7 @@ /* A tuple is equivalent to its first element here */ while (is_tupleobject(w) && gettuplesize(w) > 0) { u = w; - w = gettupleitem(u, 0); + w = GETTUPLEITEM(u, 0); INCREF(w); DECREF(u); } @@ -977,7 +977,7 @@ break; } for (; --oparg >= 0; ) { - w = gettupleitem(v, oparg); + w = GETTUPLEITEM(v, oparg); INCREF(w); PUSH(w); } @@ -1003,54 +1003,6 @@ break; } n = gettuplesize(v); -#ifdef COMPAT_HACKS -/* Implement various compatibility hacks (for 0.9.4 or earlier): - (a) f(a,b,...) accepts f((1,2,...)) - (b) f((a,b,...)) accepts f(1,2,...) - (c) f(self,(a,b,...)) accepts f(x,1,2,...) -*/ - if (n == 1 && oparg != 1) { - /* Rule (a) */ - w = gettupleitem(v, 0); - if (is_tupleobject(w)) { - INCREF(w); - DECREF(v); - v = w; - n = gettuplesize(v); - } - } - else if (n != 1 && oparg == 1) { - /* Rule (b) */ - PUSH(v); - break; - /* Don't fall through */ - } - else if (n > 2 && oparg == 2) { - /* Rule (c) */ - int i; - w = newtupleobject(n-1); - u = newtupleobject(2); - if (u == NULL || w == NULL) { - XDECREF(w); - XDECREF(u); - DECREF(v); - why = WHY_EXCEPTION; - break; - } - t = gettupleitem(v, 0); - INCREF(t); - settupleitem(u, 0, t); - for (i = 1; i < n; i++) { - t = gettupleitem(v, i); - INCREF(t); - settupleitem(w, i-1, t); - } - settupleitem(u, 1, w); - DECREF(v); - v = u; - n = 2; - } -#endif /* Disabled compatibility hacks */ if (n != oparg) { err_setstr(TypeError, "arg count mismatch"); @@ -1078,7 +1030,7 @@ break; } for (; --oparg >= 0; ) { - w = gettupleitem(v, oparg); + w = GETTUPLEITEM(v, oparg); INCREF(w); PUSH(w); } @@ -1288,9 +1240,7 @@ if (x != NULL) { for (; --oparg >= 0;) { w = POP(); - err = settupleitem(x, oparg, w); - if (err != 0) - break; + SETTUPLEITEM(x, oparg, w); } PUSH(x); } @@ -1683,12 +1633,12 @@ if (what == NULL) goto cleanup; INCREF(f); - settupleitem(arglist, 0, (object *)f); - settupleitem(arglist, 1, what); + SETTUPLEITEM(arglist, 0, (object *)f); + SETTUPLEITEM(arglist, 1, what); if (arg == NULL) arg = None; INCREF(arg); - settupleitem(arglist, 2, arg); + SETTUPLEITEM(arglist, 2, arg); tracing++; fast_2_locals(f); res = call_object(*p_trace, arglist); /* May clear *p_trace! */ @@ -2074,14 +2024,17 @@ object *result; if (call = func->ob_type->tp_call) { +#if 0 + /* XXX Why is this here??? */ int size = gettuplesize(arg); if (arg) { size = gettuplesize(arg); if (size == 1) - arg = gettupleitem(arg, 0); + arg = GETTUPLEITEM(arg, 0); else if (size == 0) arg = NULL; - } + } +#endif result = (*call)(func, arg); } else if (is_instancemethodobject(func) || is_funcobject(func)) @@ -2106,7 +2059,7 @@ if (!getvarargs(func) && arg != NULL && is_tupleobject(arg)) { int size = gettuplesize(arg); if (size == 1) - arg = gettupleitem(arg, 0); + arg = GETTUPLEITEM(arg, 0); else if (size == 0) arg = NULL; } @@ -2151,7 +2104,7 @@ the class (or a derived class) as first argument */ if (arg != NULL && is_tupleobject(arg) && gettuplesize(arg) >= 1) { - self = gettupleitem(arg, 0); + self = GETTUPLEITEM(arg, 0); if (self != NULL && is_instanceobject(self) && issubclass((object *) @@ -2178,18 +2131,18 @@ if (newarg == NULL) return NULL; INCREF(self); - settupleitem(newarg, 0, self); + SETTUPLEITEM(newarg, 0, self); if (arg != NULL && !is_tupleobject(arg)) { INCREF(arg); - settupleitem(newarg, 1, arg); + SETTUPLEITEM(newarg, 1, arg); } else { int i; object *v; for (i = 0; i < argcount; i++) { - v = gettupleitem(arg, i); + v = GETTUPLEITEM(arg, i); XINCREF(v); - settupleitem(newarg, i+1, v); + SETTUPLEITEM(newarg, i+1, v); } } arg = newarg; @@ -2221,14 +2174,14 @@ return NULL; } for (i = 0; i < actualcount; i++) { - v = gettupleitem(arg, i); + v = GETTUPLEITEM(arg, i); XINCREF(v); - settupleitem(newarg, i, v); + SETTUPLEITEM(newarg, i, v); } for (; i < argcount; i++, j++) { - v = gettupleitem(argdefs, j); + v = GETTUPLEITEM(argdefs, j); XINCREF(v); - settupleitem(newarg, i, v); + SETTUPLEITEM(newarg, i, v); } DECREF(arg); arg = newarg; @@ -2422,7 +2375,7 @@ n = gettuplesize(v); for (i = 0; i < n; i++) { /* Test recursively */ - if (cmp_exception(err, gettupleitem(v, i))) + if (cmp_exception(err, GETTUPLEITEM(v, i))) return 1; } return 0; @@ -2586,7 +2539,7 @@ } if (gettuplesize(bases) > 0) { object *base; - base = gettupleitem(bases, 0); + base = GETTUPLEITEM(bases, 0); /* Call the base's *type*, if it is callable. This code is a hook for Donald Beaudry's type extensions. In unexended Python it will never be triggered since its @@ -2609,7 +2562,7 @@ return NULL; } for (i = gettuplesize(bases); --i >= 0; ) { - object *base = gettupleitem(bases, i); + object *base = GETTUPLEITEM(bases, i); if (!is_classobject(base)) { err_setstr(TypeError, "base is not a class object"); @@ -2636,7 +2589,7 @@ object *map = f->f_localmap; value = NULL; for (fastind = gettuplesize(map); --fastind >= 0; ) { - object *fname = gettupleitem(map, fastind); + object *fname = GETTUPLEITEM(map, fastind); if (cmpobject(name, fname) == 0) { value = getlistitem(f->f_fastlocals, fastind); break; @@ -2741,7 +2694,6 @@ next_instr = GETUSTRINGVALUE(f->f_code->co_code) + nexti; opcode = (*next_instr++); if (opcode != IMPORT_FROM) { - printf("next opcode: %d\n", opcode); INCREF(None); return None; }
