]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Give code objects a more useful representation.
authorGuido van Rossum <guido@python.org>
Thu, 3 Sep 1992 20:50:59 +0000 (20:50 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 3 Sep 1992 20:50:59 +0000 (20:50 +0000)
Python/compile.c

index dd4fe153b71074cad02b332ee63f7468684a3aa0..483e5247b4abe047cde50511e61cc168201ce106 100644 (file)
@@ -72,6 +72,23 @@ code_dealloc(co)
        DEL(co);
 }
 
+static object *
+code_repr(co)
+       codeobject *co;
+{
+       char buf[500];
+       int lineno = -1;
+       char *p = GETSTRINGVALUE(co->co_code);
+       char *filename = "???";
+       if (*p == SET_LINENO)
+               lineno = (p[1] & 0xff) | ((p[2] & 0xff) << 8);
+       if (co->co_filename && is_stringobject(co->co_filename))
+               filename = getstringvalue(co->co_filename);
+       sprintf(buf, "<code object at %lx, file \"%.400s\", line %d>",
+               (long)co, filename, lineno);
+       return newstringobject(buf);
+}
+
 typeobject Codetype = {
        OB_HEAD_INIT(&Typetype)
        0,
@@ -83,7 +100,7 @@ typeobject Codetype = {
        code_getattr,   /*tp_getattr*/
        0,              /*tp_setattr*/
        0,              /*tp_compare*/
-       0,              /*tp_repr*/
+       code_repr,      /*tp_repr*/
        0,              /*tp_as_number*/
        0,              /*tp_as_sequence*/
        0,              /*tp_as_mapping*/