Skip to content
Snippets Groups Projects
Commit d3921882 authored by Sven Gestegård Robertz's avatar Sven Gestegård Robertz
Browse files

merge

parents a824aa37 fadb9072
Branches master
No related tags found
No related merge requests found
...@@ -17,7 +17,7 @@ ifeq ($(UNAME_S),Darwin) ...@@ -17,7 +17,7 @@ ifeq ($(UNAME_S),Darwin)
else else
cd simple ; sh compile.sh && sh run.sh cd simple ; sh compile.sh && sh run.sh
$(MAKE) -C wiki_example test $(MAKE) -C wiki_example test
$(MAKE) -C user_types test $(MAKE) -C user_types all
endif endif
$(MAKE) -C duck_typing test $(MAKE) -C duck_typing test
$(MAKE) -C twoway test $(MAKE) -C twoway test
......
...@@ -637,8 +637,7 @@ class struct(type_decl): ...@@ -637,8 +637,7 @@ class struct(type_decl):
return not self.__eq__(other) return not self.__eq__(other)
def __hash__(self): def __hash__(self):
tmp = str(self.field) return hash(self.__class__) ^ hash(self.field)
return hash(self.__class__) ^ hash(tmp)
def encode_decl(self, encoder): def encode_decl(self, encoder):
encoder.encode_type(i_STRUCT) encoder.encode_type(i_STRUCT)
...@@ -918,8 +917,8 @@ class Decoder(Codec): ...@@ -918,8 +917,8 @@ class Decoder(Codec):
self.version = version self.version = version
self.handlers = {} self.handlers = {}
def register_handler(self, sig, handler): def register_handler(self, decl, handler):
self.handlers[str(sig)] = handler self.handlers[decl] = handler
def unpack(self, format): def unpack(self, format):
size = packer.calcsize(format) size = packer.calcsize(format)
...@@ -956,11 +955,16 @@ class Decoder(Codec): ...@@ -956,11 +955,16 @@ class Decoder(Codec):
data,decl = self.decode() data,decl = self.decode()
if decl: if decl:
if data != None: if data != None:
if str(decl) in self.handlers: if decl in self.handlers:
handler = self.handlers[str(decl)] handler = self.handlers[decl]
handler(data) handler(data)
else: else:
print ("No handler for %s" % decl.name ) print ("No handler for %s" % decl.name )
for key, value in self.handlers.iteritems():
if key == decl:
print "but value %s == decl %s" % (key,decl)
print "hashes %d : %d" % (hash(key),hash(decl))
raise Exception()
def decode(self): def decode(self):
while True: while True:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment