Memory Leak Using JSON-C

Madhu S. Kapoor picture Madhu S. Kapoor · Jan 5, 2012 · Viewed 10.3k times · Source

I am new to JSON-C, Please see my sample code and let me know of it will create any memory leak, if yes then how to free JSON-C object.

    struct json_object *new_obj         = NULL;
    new_obj = json_tokener_parse(strRawJSON);
    new_obj = json_object_object_get(new_obj, "FUU");
    if(NULL == new_obj){
        SYS_OUT("\nFUU not found in JSON");
        return NO;
    }
    new_obj = json_object_object_get(new_obj, "FOO"); // I m re-using new_obj, without free it?  
    if(NULL == new_obj){
        SYS_OUT("\nFOO not found in JSON");
        return NO;
    }
    // DO I need to clean new_obj, if yes then how ??

Do I need to clean new_obj, if yes then how. Can some one help to understand how to do memory management JSON-C.

Thanks in Advance

Answer

Madhu S. Kapoor picture Madhu S. Kapoor · Oct 20, 2012

NO, We need to call json_object_put only once for root object as long as we are not explicitly allocating memory to json-object and this worked for me.....!!