diff --git a/kubernetes/model/object.c b/kubernetes/model/object.c index d1066938..ff293bcd 100644 --- a/kubernetes/model/object.c +++ b/kubernetes/model/object.c @@ -4,28 +4,48 @@ #include "object.h" object_t *object_create() { - object_t *object = malloc(sizeof(object_t)); + object_t *object = calloc(1, sizeof(object_t)); return object; } void object_free(object_t *object) { + if (!object) { + return ; + } + + if (object->temporary) { + free(object->temporary); + object->temporary = NULL; + } + free (object); } cJSON *object_convertToJSON(object_t *object) { - cJSON *item = cJSON_CreateObject(); + if (!object) { + return NULL; + } - return item; -fail: - cJSON_Delete(item); - return NULL; + if (!object->temporary) { + return cJSON_Parse("null"); + } + + return cJSON_Parse(object->temporary); } -object_t *object_parseFromJSON(char *jsonString){ - object_t *object = NULL; +object_t *object_parseFromJSON(cJSON *json){ + if (!json) { + goto end; + } + object_t *object = object_create(); + if (!object) { + goto end; + } + object->temporary = cJSON_Print(json); return object; + end: return NULL; } diff --git a/kubernetes/model/object.h b/kubernetes/model/object.h index 18503e0c..35bfeb60 100644 --- a/kubernetes/model/object.h +++ b/kubernetes/model/object.h @@ -20,7 +20,7 @@ object_t *object_create(); void object_free(object_t *object); -object_t *object_parseFromJSON(char *jsonString); +object_t *object_parseFromJSON(cJSON *json); cJSON *object_convertToJSON(object_t *object);