in v2/src/log_context.c [94:117]
LOG_CONTEXT_HANDLE log_context_create(LOG_CONTEXT_HANDLE parent_context, uint32_t properties_count, uint32_t data_size)
{
/* Codes_SRS_LOG_CONTEXT_01_001: [ LOG_CONTEXT_CREATE shall allocate memory for the log context. ]*/
LOG_CONTEXT_HANDLE result = malloc(sizeof(LOG_CONTEXT) + (sizeof(LOG_CONTEXT_PROPERTY_VALUE_PAIR) * properties_count) + data_size);
if (result == NULL)
{
/* Codes_SRS_LOG_CONTEXT_01_002: [ If any error occurs, LOG_CONTEXT_CREATE shall fail and return NULL. ]*/
(void)printf("malloc(sizeof(LOG_CONTEXT)) failed, properties_count=%" PRIu32 ", data_size=%" PRIu32 "\r\n",
properties_count, data_size);
}
else
{
result->property_value_pairs_ptr = (void*)((uint8_t*)result + sizeof(LOG_CONTEXT));
result->property_value_pair_count = properties_count;
result->values_data = (void*)(result->property_value_pairs_ptr + properties_count);
result->values_data_length = data_size;
/* Codes_SRS_LOG_CONTEXT_01_014: [ If parent_context is non-NULL, the created context shall copy all the property/value pairs of parent_context. ]*/
internal_log_context_init_from_parent(result, parent_context);
/* return as is */
}
return result;
}