summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristján Valur Jónsson <kristjan@ccpgames.com>2007-04-13 22:07:33 (GMT)
committerKristján Valur Jónsson <kristjan@ccpgames.com>2007-04-13 22:07:33 (GMT)
commit2f2f57916c5930c4123d9b8e5f1cfe3f6a07549d (patch)
treef2a08b2ea639e959ac806d9715817c6ccf1cb0d4
parent25a3864541dc9259a3bfd36b195cbb764f8e2d56 (diff)
downloadcpython-2f2f57916c5930c4123d9b8e5f1cfe3f6a07549d.zip
cpython-2f2f57916c5930c4123d9b8e5f1cfe3f6a07549d.tar.gz
cpython-2f2f57916c5930c4123d9b8e5f1cfe3f6a07549d.tar.bz2
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127
-rw-r--r--Objects/frameobject.c4
-rw-r--r--Python/ceval.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index 90c4692..2a5ccd8 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -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)) {
diff --git a/Python/ceval.c b/Python/ceval.c
index b35942d..44d6f25 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -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()