]> 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:07:33 +0000 (22:07 +0000)
committerKristján Valur Jónsson <kristjan@ccpgames.com>
Fri, 13 Apr 2007 22:07:33 +0000 (22:07 +0000)
Objects/frameobject.c
Python/ceval.c

index 90c46923c7be48079a3dd624ec81ce82d314a295..2a5ccd8a3efb8ce1697dc48a57c7c82a0cf515bd 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 b35942d7b90aae2e6d86500e942cc62b3ab5658f..44d6f25ccd6d476ec2042ba86b9369ffb400aad3 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()