in Sources/aliyun-log-c-sdk/log_producer_config.c [281:310]
void log_producer_config_add_tag(log_producer_config * pConfig, const char * key, const char * value)
{
if(key == NULL || value == NULL)
{
return;
}
++pConfig->tagCount;
if (pConfig->tags == NULL || pConfig->tagCount > pConfig->tagAllocSize)
{
if(pConfig->tagAllocSize == 0)
{
pConfig->tagAllocSize = 4;
}
else
{
pConfig->tagAllocSize *= 2;
}
log_producer_config_tag * tagArray = (log_producer_config_tag *)malloc(sizeof(log_producer_config_tag) * pConfig->tagAllocSize);
if (pConfig->tags != NULL)
{
memcpy(tagArray, pConfig->tags, sizeof(log_producer_config_tag) * (pConfig->tagCount - 1));
free(pConfig->tags);
}
pConfig->tags = tagArray;
}
int32_t tagIndex = pConfig->tagCount - 1;
pConfig->tags[tagIndex].key = log_sdsnew(key);
pConfig->tags[tagIndex].value = log_sdsnew(value);
}