[Python-checkins] r54813 - in python/branches/release25-maint: Objects/frameobject.c Python/ceval.c

kristjan.jonsson python-checkins at python.org
Sat Apr 14 00:10:01 CEST 2007


Author: kristjan.jonsson
Date: Sat Apr 14 00:09:59 2007
New Revision: 54813

Modified:
   python/branches/release25-maint/Objects/frameobject.c
   python/branches/release25-maint/Python/ceval.c
Log:
Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127

Modified: python/branches/release25-maint/Objects/frameobject.c
==============================================================================
--- python/branches/release25-maint/Objects/frameobject.c	(original)
+++ python/branches/release25-maint/Objects/frameobject.c	Sat Apr 14 00:09:59 2007
@@ -68,7 +68,7 @@
 	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 @@
 	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)) {

Modified: python/branches/release25-maint/Python/ceval.c
==============================================================================
--- python/branches/release25-maint/Python/ceval.c	(original)
+++ python/branches/release25-maint/Python/ceval.c	Sat Apr 14 00:09:59 2007
@@ -662,7 +662,7 @@
 #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()


More information about the Python-checkins mailing list