A small memory footprint AMQP implimentation
Dependents: iothub_client_sample_amqp remote_monitoring simplesample_amqp
Diff: session.c
- Revision:
- 7:9e9ab3b0efef
- Parent:
- 6:641a9672db08
- Child:
- 12:b30dacf113f2
diff -r 641a9672db08 -r 9e9ab3b0efef session.c --- 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)