On Wed, Jul 08, 2015 at 02:53:47PM +0100, Frediano Ziglio wrote: > I'm generating code for dissector from demarshaller. > Make simple to hangle ifdef/endif not having to check manually attribute. > > Signed-off-by: Frediano Ziglio <[email protected]> > --- > python_modules/dissector.py | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/python_modules/dissector.py b/python_modules/dissector.py > index 52234fc..f9ad08a 100644 > --- a/python_modules/dissector.py > +++ b/python_modules/dissector.py > @@ -2,6 +2,8 @@ > from . import codegen > import re > > +import types > + > > # generate a new tree identifier > ett_writer = None > @@ -95,10 +97,26 @@ def write_protocol_definitions(writer): > writer.end_block() > > > +def decorate_writer(writer): > + cls = writer.__class__ > + > + def create(old): > + def ifdef(self, member): > + if member.has_attr("ifdef"): > + old(self, member.attributes["ifdef"][0]) > + return types.MethodType(ifdef, None, cls)
This call fails with python3:
Traceback (most recent call last):
File "../spice_codegen.py", line 228, in <module>
dissector.write_protocol_parser(writer, proto)
File "/home/teuf/redhat/spice-common/python_modules/dissector.py", line 1051,
in write_protocol_parser
decorate_writer(writer)
File "/home/teuf/redhat/spice-common/python_modules/dissector.py", line 1042,
in decorate_writer
cls.ifdef = create(cls.ifdef)
File "/home/teuf/redhat/spice-common/python_modules/dissector.py", line 1040,
in create
return types.MethodType(ifdef, None, cls)
TypeError: method expected 2 arguments, got 3
pgpLsun18tlQe.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
