Support compilers that don't have the "inline" keyword
[jansson.git] / src / value.c
index 2b97947..3788cb1 100644 (file)
@@ -1,11 +1,14 @@
 /*
- * Copyright (c) 2009 Petri Lehtinen <petri@digip.org>
+ * Copyright (c) 2009, 2010 Petri Lehtinen <petri@digip.org>
  *
  * Jansson is free software; you can redistribute it and/or modify
  * it under the terms of the MIT license. See LICENSE for details.
  */
 
 #define _GNU_SOURCE
+
+#include <config.h>
+
 #include <stdlib.h>
 #include <string.h>
 
@@ -170,7 +173,7 @@ int json_object_update(json_t *object, json_t *other)
         key = json_object_iter_key(iter);
         value = json_object_iter_value(iter);
 
-        if(json_object_set(object, key, value))
+        if(json_object_set_nocheck(object, key, value))
             return -1;
 
         iter = json_object_iter_next(other, iter);
@@ -260,7 +263,7 @@ static json_t *json_object_copy(json_t *object)
 
         key = json_object_iter_key(iter);
         value = json_object_iter_value(iter);
-        json_object_set(result, key, value);
+        json_object_set_nocheck(result, key, value);
 
         iter = json_object_iter_next(object, iter);
     }
@@ -285,7 +288,7 @@ static json_t *json_object_deep_copy(json_t *object)
 
         key = json_object_iter_key(iter);
         value = json_object_iter_value(iter);
-        json_object_set(result, key, json_deep_copy(value));
+        json_object_set_new_nocheck(result, key, json_deep_copy(value));
 
         iter = json_object_iter_next(object, iter);
     }
@@ -586,7 +589,7 @@ static json_t *json_array_deep_copy(json_t *array)
         return NULL;
 
     for(i = 0; i < json_array_size(array); i++)
-        json_array_append(result, json_deep_copy(json_array_get(array, i)));
+        json_array_append_new(result, json_deep_copy(json_array_get(array, i)));
 
     return result;
 }
@@ -667,7 +670,7 @@ static int json_string_equal(json_t *string1, json_t *string2)
 
 static json_t *json_string_copy(json_t *string)
 {
-    return json_string(json_string_value(string));
+    return json_string_nocheck(json_string_value(string));
 }
 
 
@@ -784,7 +787,7 @@ json_t *json_true(void)
 {
     static json_t the_true = {
         .type = JSON_TRUE,
-        .refcount = (unsigned int)1
+        .refcount = (unsigned int)-1
     };
     return &the_true;
 }
@@ -794,7 +797,7 @@ json_t *json_false(void)
 {
     static json_t the_false = {
         .type = JSON_FALSE,
-        .refcount = (unsigned int)1
+        .refcount = (unsigned int)-1
     };
     return &the_false;
 }
@@ -804,7 +807,7 @@ json_t *json_null(void)
 {
     static json_t the_null = {
         .type = JSON_NULL,
-        .refcount = (unsigned int)1
+        .refcount = (unsigned int)-1
     };
     return &the_null;
 }