summaryrefslogtreecommitdiff
path: root/qpid/extras/dispatch/src/compose.c
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/extras/dispatch/src/compose.c')
-rw-r--r--qpid/extras/dispatch/src/compose.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/qpid/extras/dispatch/src/compose.c b/qpid/extras/dispatch/src/compose.c
index 352c282258..6eb2ab1c73 100644
--- a/qpid/extras/dispatch/src/compose.c
+++ b/qpid/extras/dispatch/src/compose.c
@@ -21,30 +21,10 @@
#include <qpid/dispatch/alloc.h>
#include <qpid/dispatch/buffer.h>
#include <qpid/dispatch/amqp.h>
-#include "message_private.h"
#include "compose_private.h"
#include <memory.h>
-typedef struct dx_composite_t {
- DEQ_LINKS(struct dx_composite_t);
- int isMap;
- uint32_t count;
- uint32_t length;
- dx_field_location_t length_location;
- dx_field_location_t count_location;
-} dx_composite_t;
-
-ALLOC_DECLARE(dx_composite_t);
ALLOC_DEFINE(dx_composite_t);
-DEQ_DECLARE(dx_composite_t, dx_field_stack_t);
-
-
-struct dx_composed_field_t {
- dx_buffer_list_t buffers;
- dx_field_stack_t fieldStack;
-};
-
-ALLOC_DECLARE(dx_composed_field_t);
ALLOC_DEFINE(dx_composed_field_t);
@@ -197,7 +177,7 @@ static void dx_compose_end_composite(dx_composed_field_t *field)
//
dx_composite_t *enclosing = DEQ_HEAD(field->fieldStack);
if (enclosing) {
- enclosing->length += 4 + comp->length;
+ enclosing->length += (comp->length - 4); // the length and count were already accounted for
enclosing->count++;
}