summaryrefslogtreecommitdiffstats
path: root/Python/traceback.c
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
committerThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
commit49fd7fa4431da299196d74087df4a04f99f9c46f (patch)
tree35ace5fe78d3d52c7a9ab356ab9f6dbf8d4b71f4 /Python/traceback.c
parent9ada3d6e29d5165dadacbe6be07bcd35cfbef59d (diff)
downloadcpython-49fd7fa4431da299196d74087df4a04f99f9c46f.zip
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.gz
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.bz2
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
Diffstat (limited to 'Python/traceback.c')
-rw-r--r--Python/traceback.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/Python/traceback.c b/Python/traceback.c
index 6c11cf5..cfbd833 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -39,24 +39,16 @@ tb_dealloc(PyTracebackObject *tb)
static int
tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
{
- int err = 0;
- if (tb->tb_next) {
- err = visit((PyObject *)tb->tb_next, arg);
- if (err)
- return err;
- }
- if (tb->tb_frame)
- err = visit((PyObject *)tb->tb_frame, arg);
- return err;
+ Py_VISIT(tb->tb_next);
+ Py_VISIT(tb->tb_frame);
+ return 0;
}
static void
tb_clear(PyTracebackObject *tb)
{
- Py_XDECREF(tb->tb_next);
- Py_XDECREF(tb->tb_frame);
- tb->tb_next = NULL;
- tb->tb_frame = NULL;
+ Py_CLEAR(tb->tb_next);
+ Py_CLEAR(tb->tb_frame);
}
PyTypeObject PyTraceBack_Type = {
@@ -165,7 +157,7 @@ tb_displayline(PyObject *f, char *filename, int lineno, char *name)
}
if (PyString_Check(v)) {
size_t len;
- len = PyString_Size(v);
+ len = PyString_GET_SIZE(v);
if (len + 1 + taillen >= MAXPATHLEN)
continue; /* Too long */
strcpy(namebuf, PyString_AsString(v));