]> granicus.if.org Git - python/commitdiff
add two generic macros for peeking and setting in the stack
authorBenjamin Peterson <benjamin@python.org>
Sun, 28 Jun 2009 16:08:02 +0000 (16:08 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sun, 28 Jun 2009 16:08:02 +0000 (16:08 +0000)
Python/ceval.c

index dd91f5d0dc30325f791415340cca58658955e922..8f4640416b69139a3df5039c29e35772ad147c2b 100644 (file)
@@ -803,10 +803,12 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
 #define SECOND()       (stack_pointer[-2])
 #define THIRD()        (stack_pointer[-3])
 #define FOURTH()       (stack_pointer[-4])
+#define PEEK(n)         (stack_pointer[-(n)])
 #define SET_TOP(v)     (stack_pointer[-1] = (v))
 #define SET_SECOND(v)  (stack_pointer[-2] = (v))
 #define SET_THIRD(v)   (stack_pointer[-3] = (v))
 #define SET_FOURTH(v)  (stack_pointer[-4] = (v))
+#define SET_VALUE(n, v) (stack_pointer[-(n)] = (v))
 #define BASIC_STACKADJ(n)      (stack_pointer += n)
 #define BASIC_PUSH(v)  (*stack_pointer++ = (v))
 #define BASIC_POP()    (*--stack_pointer)