summaryrefslogtreecommitdiff
path: root/amqp_codegen.py
diff options
context:
space:
mode:
authorTony Garnock-Jones <tonyg@rabbitmq.com>2010-06-21 22:49:50 +1200
committerTony Garnock-Jones <tonyg@rabbitmq.com>2010-06-21 22:49:50 +1200
commit53b0e8ad06d4e7d186c4e7452ff2d6dbe1fdb8f7 (patch)
tree93a8d4664ea5b8ef2266b7fa89cef9277c20a0f3 /amqp_codegen.py
parentf0a7385ebf73d219d932c0ad6de01dcdfbf82727 (diff)
downloadrabbitmq-codegen-53b0e8ad06d4e7d186c4e7452ff2d6dbe1fdb8f7.tar.gz
Update class records in-placebug22876
Diffstat (limited to 'amqp_codegen.py')
-rw-r--r--amqp_codegen.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/amqp_codegen.py b/amqp_codegen.py
index 4300a2a..9da1aca 100644
--- a/amqp_codegen.py
+++ b/amqp_codegen.py
@@ -105,17 +105,15 @@ def class_merger(old, new):
old["properties"] = properties_merger(old["name"],
old.get("properties", []),
new.get("properties", []))
- return old
def classes_merger(key, old, new):
- old_index = dict(zip((v["name"] for v in old), xrange(len(old))))
+ old_dict = dict((v["name"], v) for v in old)
result = list(old) # shallow copy
- for v in new:
- if v["name"] in old_index:
- pos = old_index[v["name"]]
- result[pos] = class_merger(result[pos], v)
+ for w in new:
+ if w["name"] in old_dict:
+ class_merger(old_dict[w["name"]], w)
else:
- result.append(v)
+ result.append(w)
return result
mergers = {