]> granicus.if.org Git - python/commitdiff
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars...
authorKristján Valur Jónsson <kristjan@ccpgames.com>
Fri, 13 Apr 2007 22:09:59 +0000 (22:09 +0000)
committerKristján Valur Jónsson <kristjan@ccpgames.com>
Fri, 13 Apr 2007 22:09:59 +0000 (22:09 +0000)
Objects/frameobject.c
Python/ceval.c

index 3a073b6fa02a2e1f6ec37b9d9e60dbe1e74d801e..c12b70c98c209906a0c7ac38c4adff5ef8cabaac 100644 (file)
@@ -68,7 +68,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno)
        int new_lineno = 0;             /* The new value of f_lineno */
        int new_lasti = 0;              /* The new value of f_lasti */
        int new_iblock = 0;             /* The new value of f_iblock */
-       char *code = NULL;              /* The bytecode for the frame... */
+       unsigned char *code = NULL;     /* The bytecode for the frame... */
        Py_ssize_t code_len = 0;        /* ...and its length */
        char *lnotab = NULL;            /* Iterating over co_lnotab */
        Py_ssize_t lnotab_len = 0;      /* (ditto) */
@@ -85,7 +85,7 @@ frame_setlineno(PyFrameObject *f, PyObject* p_new_lineno)
        int blockstack[CO_MAXBLOCKS];   /* Walking the 'finally' blocks */
        int in_finally[CO_MAXBLOCKS];   /* (ditto) */
        int blockstack_top = 0;         /* (ditto) */
-       int setup_op = 0;               /* (ditto) */
+       unsigned char setup_op = 0;     /* (ditto) */
 
        /* f_lineno must be an integer. */
        if (!PyInt_Check(p_new_lineno)) {
index 9dddd2ff2fb2bfc8f0daa920b227e910bb2e56d7..b1ba4260b82b68e1d32199b316a184c09fa1eb24 100644 (file)
@@ -662,7 +662,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
 #define STACKADJ(n)    { (void)(BASIC_STACKADJ(n), \
                                lltrace && prtrace(TOP(), "stackadj")); \
                                assert(STACK_LEVEL() <= co->co_stacksize); }
-#define EXT_POP(STACK_POINTER) (lltrace && prtrace(*(STACK_POINTER), "ext_pop"), *--(STACK_POINTER))
+#define EXT_POP(STACK_POINTER) (lltrace && prtrace((STACK_POINTER)[-1], "ext_pop"), *--(STACK_POINTER))
 #else
 #define PUSH(v)                BASIC_PUSH(v)
 #define POP()          BASIC_POP()