diff options
author | Ask Solem <ask@celeryproject.org> | 2013-07-31 15:55:49 +0100 |
---|---|---|
committer | Ask Solem <ask@celeryproject.org> | 2013-07-31 16:07:46 +0100 |
commit | 7b88769b5111e8c8d87a7741f0c2e6fb396072d7 (patch) | |
tree | 3e4bd0798ecce3efa2052682eaacffced6e6c909 | |
parent | 71053f44bcdd987c77d158a183d37debeb37118a (diff) | |
download | py-amqp-7b88769b5111e8c8d87a7741f0c2e6fb396072d7.tar.gz |
Avoid copy of small messages
-rw-r--r-- | amqp/method_framing.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/amqp/method_framing.py b/amqp/method_framing.py index 1e43c8e..a26db66 100644 --- a/amqp/method_framing.py +++ b/amqp/method_framing.py @@ -60,12 +60,17 @@ class _PartialMessage(object): self.complete = (self.body_size == 0) def add_payload(self, payload): - self.body_parts.append(payload) + parts = self.body_parts self.body_received += len(payload) - if self.body_received == self.body_size: - self.msg.body = bytes().join(self.body_parts) + if parts: + parts.append(payload) + self.msg.body = bytes().join(parts) + else: + self.msg.body = payload self.complete = True + else: + parts.append(payload) class MethodReader(object): |