[Python-Dev] getcode() function in pyexpat.c
Jeremy Hylton
jeremy@alum.mit.edu
Mon, 22 Jan 2001 10:26:27 -0500 (EST)
The pyexpat module uses functions named getcode() and
call_with_frame() for handlers of some sort. I can make this much out
from the code, but the rest is a bit of a mystery. I was trying to
read this code because of the errors Tim is seeing with test_sax on
Windows. A few comments to explain this highly stylized and
macro-laden code would be appreciated.
The module appears to be creating empty code objects and calling
them. I say they appear to be empty, because when they are created
they don't appear to have anything initialized except name, filename,
and firstlineno.
getcode(EndNamespaceDecl, 419)
<code at 0x81b73c0
co_name = 'EndNamespaceDecl'
co_filename = 'pyexpat.c'
co_firstlineno = 419
co_argcount = 0
co_nlocals = 0
co_stacksize = 0
co_flags = 0
co_consts = ()
co_names = ()
co_varnames = ()
co_freevars = ()
co_cellvars = ()
co_code = ''
>
(The freevars and cellvars entries are part of the support for nested
scopes. They can be safely ignored for the moment.)
I simply don't understand what's going on -- and I'm deeply suspicious
that it is the source of whatever problems Tim is seeing with
test_sax.
Jeremy