[Python-Dev] getcode() function in pyexpat.c

Jeremy Hylton jeremy@alum.mit.edu
2001年1月22日 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

AltStyle によって変換されたページ (->オリジナル) /