add new function of setValuestringToObject

This commit is contained in:
Alanscut
2020-03-24 22:28:15 +08:00
parent 3ece4c893c
commit 6b35f1c5bc
2 changed files with 27 additions and 0 deletions

25
cJSON.c
View File

@ -368,6 +368,31 @@ CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number)
return object->valuedouble = number;
}
CJSON_PUBLIC(char*) cJSON_SetValuestringToObject(cJSON *object, const char *valuestring)
{
size_t length = 0;
char *copy = NULL;
/* if object->valuestring is NULL, it should not set valuestring */
if (object->valuestring == NULL)
{
return NULL;
}
length = strlen(valuestring) + sizeof("");
copy = (char*) cJSON_malloc(length);
if (copy == NULL)
{
return NULL;
}
memcpy(copy, valuestring, length);
if (!(object->type & cJSON_IsReference) && (object->valuestring != NULL))
{
cJSON_free(object->valuestring);
}
object->valuestring = copy;
return copy;
}
typedef struct
{
unsigned char *buffer;