json: Make it obvious that ast_json_unref() is NULL safe.
authorRichard Mudgett <rmudgett@digium.com>
Sat, 21 Sep 2013 00:17:56 +0000 (00:17 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Sat, 21 Sep 2013 00:17:56 +0000 (00:17 +0000)
It looked like the safety check was done after the NULL pointer was used.
........

Merged revisions 399576 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@399578 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/json.c

index 8658502..5e50c42 100644 (file)
@@ -213,13 +213,15 @@ void ast_json_unref(struct ast_json *json)
        struct json_mem_list *free_list;
        struct json_mem *mem;
 
+       if (!json) {
+               return;
+       }
+
        /* Jansson refcounting is non-atomic; lock it. */
        {
                SCOPED_JSON_LOCK(json);
-               if (!json) {
-                       return;
-               }
-               json_decref((json_t *)json);
+
+               json_decref((json_t *) json);
        }
 
        /* Now free any objects that were ast_json_free()'s while the lock was