update: rename to update_offset and change offset directly

This commit is contained in:
Max Bruckner 2017-02-20 15:02:49 +01:00
parent f16dd7e028
commit 8c1ed3ab82

22
cJSON.c
View File

@ -306,17 +306,17 @@ static unsigned char* ensure(printbuffer * const p, size_t needed)
return newbuffer + p->offset;
}
/* calculate the new length of the string in a printbuffer */
static size_t update(const printbuffer *p)
/* calculate the new length of the string in a printbuffer and update the offset */
static void update_offset(printbuffer * const buffer)
{
const unsigned char *str = NULL;
if (!p || !p->buffer)
const unsigned char *buffer_pointer = NULL;
if ((buffer == NULL) || (buffer->buffer == NULL))
{
return 0;
return;
}
str = p->buffer + p->offset;
buffer_pointer = buffer->buffer + buffer->offset;
return p->offset + strlen((const char*)str);
buffer->offset += strlen((const char*)buffer_pointer);
}
/* Render the number nicely from the given item into a string. */
@ -866,7 +866,7 @@ static unsigned char *print(const cJSON * const item, cjbool format)
{
goto fail;
}
buffer->offset = update(buffer); /* update the length of the string */
update_offset(buffer);
/* copy the buffer over to a new one */
printed = (unsigned char*) cJSON_malloc(buffer->offset + 1);
@ -1204,7 +1204,7 @@ static unsigned char *print_array(const cJSON * const item, const size_t depth,
{
return NULL;
}
output_buffer->offset = update(output_buffer);
update_offset(output_buffer);
if (current_element->next)
{
length = format ? 2 : 1;
@ -1416,7 +1416,7 @@ static unsigned char *print_object(const cJSON *item, size_t depth, cjbool fmt,
{
return NULL;
}
p->offset = update(p);
update_offset(p);
len = fmt ? 2 : 1;
ptr = ensure(p, len);
@ -1436,7 +1436,7 @@ static unsigned char *print_object(const cJSON *item, size_t depth, cjbool fmt,
{
return NULL;
}
p->offset = update(p);
update_offset(p);
/* print comma if not last */
len = (size_t) (fmt ? 1 : 0) + (child->next ? 1 : 0);