summaryrefslogtreecommitdiff
path: root/librabbitmq/codegen.py
diff options
context:
space:
mode:
Diffstat (limited to 'librabbitmq/codegen.py')
-rw-r--r--librabbitmq/codegen.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/librabbitmq/codegen.py b/librabbitmq/codegen.py
index 500745f..2c8861c 100644
--- a/librabbitmq/codegen.py
+++ b/librabbitmq/codegen.py
@@ -144,7 +144,9 @@ class StrType(object):
emitter.emit("}")
def encode(self, emitter, value):
- emitter.emit("if (!amqp_encode_%d(encoded, &offset, %s.len)" % (self.lenbits, value))
+ emitter.emit("if (UINT%d_MAX < %s.len" % (self.lenbits, value))
+ emitter.emit(" || !amqp_encode_%d(encoded, &offset, (uint%d_t)%s.len)" %
+ (self.lenbits, self.lenbits, value))
emitter.emit(" || !amqp_encode_bytes(encoded, &offset, %s))" % (value,))
emitter.emit(" return AMQP_STATUS_BAD_AMQP_DATA;")
@@ -323,7 +325,7 @@ def genErl(spec):
typeFor(spec, f).encode(emitter, "m->"+c_ize(f.name))
emitter.flush()
- print " return offset;"
+ print " return (int)offset;"
print " }"
def genEncodeProperties(c):
@@ -337,7 +339,7 @@ def genErl(spec):
typeFor(spec, f).encode(emitter, "p->"+c_ize(f.name))
emitter.emit("}")
- print " return offset;"
+ print " return (int)offset;"
print " }"
methods = spec.allMethods()