A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Revision:
25:1101516ee67d
Parent:
23:1111ee8bcba4
Child:
26:64f1113cb959
--- a/amqpvalue.c	Mon May 08 10:50:45 2017 -0700
+++ b/amqpvalue.c	Mon May 22 10:35:21 2017 -0700
@@ -1263,12 +1263,10 @@
 				}
 				else
 				{
+					uint32_t i;
 					value_data->value.list_value.items = new_list;
 
 					/* Codes_SRS_AMQPVALUE_01_162: [When a list is grown a null AMQP_VALUE shall be inserted as new list items to fill the list up to the new size.] */
-					uint32_t i;
-
-					/* Codes_SRS_AMQPVALUE_01_162: [When a list is grown a null AMQP_VALUE shall be inserted as new list items to fill the list up to the new size.] */
 					for (i = value_data->value.list_value.count; i < list_size; i++)
 					{
 						new_list[i] = amqpvalue_create_null();
@@ -3530,9 +3528,10 @@
 
 static int count_bytes(void* context, const unsigned char* bytes, size_t length)
 {
+	size_t* byte_count;
 	(void)bytes;
 
-    size_t* byte_count = (size_t*)context;
+    byte_count = (size_t*)context;
     *byte_count += length;
 
     return 0;
@@ -3679,9 +3678,9 @@
 {
     /* API issue: the decoded_value should be removed completely:
     TODO: uAMQP: inner_decoder_callback in amqpvalue.c could probably do without the decoded_value ... */
-    (void)decoded_value;
 	INTERNAL_DECODER_DATA* internal_decoder_data = (INTERNAL_DECODER_DATA*)context;
 	INTERNAL_DECODER_DATA* inner_decoder = (INTERNAL_DECODER_DATA*)internal_decoder_data->inner_decoder;
+    (void)decoded_value;
 	inner_decoder->decoder_state = DECODER_STATE_DONE;
 }
 
@@ -3726,8 +3725,9 @@
 
 				case 0x00: /* descriptor */
                 {
+					AMQP_VALUE_DATA* descriptor;
                     internal_decoder_data->decode_to_value->type = AMQP_TYPE_DESCRIBED;
-                    AMQP_VALUE_DATA* descriptor = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
+                    descriptor = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
                     if (descriptor == NULL)
                     {
                         internal_decoder_data->decoder_state = DECODER_STATE_ERROR;
@@ -4175,9 +4175,10 @@
 
 							if (inner_decoder->decoder_state == DECODER_STATE_DONE)
 							{
+								AMQP_VALUE_DATA* described_value;
 								internal_decoder_destroy(inner_decoder);
 
-								AMQP_VALUE_DATA* described_value = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
+								described_value = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
 								if (described_value == NULL)
 								{
 									internal_decoder_data->decoder_state = DECODER_STATE_ERROR;
@@ -5524,9 +5525,10 @@
 
 						if (internal_decoder_data->bytes_decoded == 0)
 						{
+							AMQP_VALUE_DATA* array_item;
 							internal_decoder_data->decode_value_state.array_value_state.constructor_byte = buffer[0];
 
-							AMQP_VALUE_DATA* array_item = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
+							array_item = (AMQP_VALUE_DATA*)malloc(sizeof(AMQP_VALUE_DATA));
 							if (array_item == NULL)
 							{
                                 LogError("Could not allocate memory for array item to be decoded");