cJSON

mirror of Dave's cJSON
git clone git://git.thc420.xyz/cJSON
Log | Files | Refs | README | LICENSE

commit 1dff6f160fc944c8f7bf9d70f6580913d31c1cd6
parent a148520ffb0a287ef61e6ba3ff8161be5c844bf5
Author: Max Bruckner <max@maxbruckner.de>
Date:   Sat,  5 Nov 2016 00:15:57 +0700

cJSON_Utils: own strdup for C89 compatibility

Diffstat:
McJSON_Utils.c | 21++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/cJSON_Utils.c b/cJSON_Utils.c @@ -4,6 +4,21 @@ #include <stdio.h> #include "cJSON_Utils.h" +static char* cJSONUtils_strdup(const char* str) +{ + size_t len; + char* copy; + + len = strlen(str) + 1; + if (!(copy = (char*)malloc(len))) + { + return 0; + } + memcpy(copy, str, len); + + return copy; +} + static int cJSONUtils_strcasecmp(const char *s1, const char *s2) { if (!s1) @@ -107,7 +122,7 @@ char *cJSONUtils_FindPointerFromObjectTo(cJSON *object, cJSON *target) if (object == target) { /* found */ - return strdup(""); + return cJSONUtils_strdup(""); } /* recursively search all children of the object */ @@ -213,7 +228,7 @@ static cJSON *cJSONUtils_PatchDetach(cJSON *object, const char *path) cJSON *ret = 0; /* copy path and split it in parent and child */ - parentptr = strdup(path); + parentptr = cJSONUtils_strdup(path); childptr = strrchr(parentptr, '/'); /* last '/' */ if (childptr) { @@ -416,7 +431,7 @@ static int cJSONUtils_ApplyPatch(cJSON *object, cJSON *patch) /* Now, just add "value" to "path". */ /* split pointer in parent and child */ - parentptr = strdup(path->valuestring); + parentptr = cJSONUtils_strdup(path->valuestring); childptr = strrchr(parentptr, '/'); if (childptr) {