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 <fziglio@xxxxxxxxxx> > --- > 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
Attachment:
pgpa_YCbcnwWk.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel