]> granicus.if.org Git - python/commitdiff
small speedup for constant and name access
authorSkip Montanaro <skip@pobox.com>
Sun, 4 Aug 2002 21:03:35 +0000 (21:03 +0000)
committerSkip Montanaro <skip@pobox.com>
Sun, 4 Aug 2002 21:03:35 +0000 (21:03 +0000)
see sf #506436

Python/ceval.c

index 50c832aa257f8b5326a3437da51dc0863a0a5482..e174d095e40010a1875b7135a4d339e620250d19 100644 (file)
@@ -494,6 +494,8 @@ eval_frame(PyFrameObject *f)
        PyThreadState *tstate = PyThreadState_GET();
        PyCodeObject *co;
        unsigned char *first_instr;
+       PyObject *names;
+       PyObject *consts;
 #ifdef LLTRACE
        int lltrace;
 #endif
@@ -512,8 +514,7 @@ eval_frame(PyFrameObject *f)
 
 /* Code access macros */
 
-#define GETCONST(i)    (GETITEM(co->co_consts, (i)))
-#define GETNAMEV(i)    (GETITEM(co->co_names, (i)))
+#define GETNAMEV(i)    (GETITEM(names, (i)))
 #define INSTR_OFFSET() (next_instr - first_instr)
 #define NEXTOP()       (*next_instr++)
 #define NEXTARG()      (next_instr += 2, (next_instr[-1]<<8) + next_instr[-2])
@@ -575,6 +576,8 @@ eval_frame(PyFrameObject *f)
 
        tstate->frame = f;
        co = f->f_code;
+       names = co->co_names;
+       consts = co->co_consts;
        fastlocals = f->f_localsplus;
        freevars = f->f_localsplus + f->f_nlocals;
        _PyCode_GETCODEPTR(co, &first_instr);
@@ -753,7 +756,7 @@ eval_frame(PyFrameObject *f)
                        break;
 
                case LOAD_CONST:
-                       x = GETCONST(oparg);
+                       x = GETITEM(consts, oparg);
                        Py_INCREF(x);
                        PUSH(x);
                        goto fast_next_opcode;