A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Revision:
7:9e9ab3b0efef
Parent:
6:641a9672db08
Child:
12:b30dacf113f2
--- a/session.c	Fri Jul 29 15:58:39 2016 -0700
+++ b/session.c	Fri Aug 12 10:04:13 2016 -0700
@@ -1041,7 +1041,7 @@
 
 					if (session_instance->link_endpoint_count - selected_handle > 0)
 					{
-						(void)memmove(&session_instance->link_endpoints[selected_handle], &session_instance->link_endpoints[selected_handle + 1], (session_instance->link_endpoint_count - selected_handle) * sizeof(LINK_ENDPOINT_INSTANCE*));
+						(void)memmove(&session_instance->link_endpoints[selected_handle + 1], &session_instance->link_endpoints[selected_handle], (session_instance->link_endpoint_count - selected_handle) * sizeof(LINK_ENDPOINT_INSTANCE*));
 					}
 
 					session_instance->link_endpoints[selected_handle] = result;
@@ -1076,7 +1076,11 @@
 		{
 			LINK_ENDPOINT_INSTANCE** new_endpoints;
 
-			(void)memmove(&session_instance->link_endpoints[i], &session_instance->link_endpoints[i + 1], (session_instance->link_endpoint_count - (uint32_t)i - 1) * sizeof(LINK_ENDPOINT_INSTANCE*));
+            if (i < (session_instance->link_endpoint_count - 1))
+            {
+				(void)memmove(&session_instance->link_endpoints[i], &session_instance->link_endpoints[i + 1], (session_instance->link_endpoint_count - (uint32_t)i - 1) * sizeof(LINK_ENDPOINT_INSTANCE*));
+			}
+
 			session_instance->link_endpoint_count--;
 
 			if (session_instance->link_endpoint_count == 0)