]> granicus.if.org Git - json-c/commitdiff
Rename json_object_add_int() to json_object_int_inc() and eliminate the "int64" varia...
authorEric Haszlakiewicz <erh+git@nimenees.com>
Mon, 27 Nov 2017 22:57:36 +0000 (17:57 -0500)
committerEric Haszlakiewicz <erh+git@nimenees.com>
Mon, 27 Nov 2017 22:57:36 +0000 (17:57 -0500)
.gitignore
json_object.c
json_object.h
tests/test_int_add.c

index 393b6eb3b34befd46f785eeda2907e26290a6580..80a2309a5660e5117cdcaca77537c5d31012450a 100644 (file)
@@ -27,6 +27,7 @@
 /tests/test_compare
 /tests/test_double_serializer
 /tests/test_float
+/tests/test_int_add
 /tests/test_json_pointer
 /tests/test_locale
 /tests/test_null
index df20de15560c3f3220d459d3369f2c5d949eb325..ee6efe5d251f4a6b48a0c96a555f8408eebd398a 100644 (file)
@@ -666,20 +666,6 @@ int json_object_set_int(struct json_object *jso,int new_value){
        return 1;
 }
 
-int json_object_add_int(struct json_object *jso, int val) {
-       if (!jso || jso->o_type != json_type_int)
-               return 0;
-       if (val > 0 && jso->o.c_int64 > INT32_MAX - val) {
-               jso->o.c_int64 = INT32_MAX;
-       } else if (val < 0 && jso->o.c_int64 < INT32_MIN - val) {
-               jso->o.c_int64 = INT32_MIN;
-       } else {
-               jso->o.c_int64 += val;
-       }
-       return 1;
-}
-
-
 struct json_object* json_object_new_int64(int64_t i)
 {
        struct json_object *jso = json_object_new(json_type_int);
@@ -724,7 +710,7 @@ int json_object_set_int64(struct json_object *jso,int64_t new_value){
        return 1;
 }
 
-int json_object_add_int64(struct json_object *jso, int64_t val) {
+int json_object_int_inc(struct json_object *jso, int64_t val) {
        if (!jso || jso->o_type != json_type_int)
                return 0;
        if (val > 0 && jso->o.c_int64 > INT64_MAX - val) {
index 1f45286905e90d6a58e5429a7c2316a31b1eed2a..4ca1420488623ce1282b6fe0cc4d923e1f797384 100644 (file)
@@ -710,7 +710,7 @@ JSON_EXPORT int32_t json_object_get_int(const struct json_object *obj);
  * 
  * The type of obj is checked to be a json_type_int and 0 is returned 
  * if it is not without any further actions. If type of obj is json_type_int
- * the obect value is chaned to new_value
+ * the obect value is changed to new_value
  *
  * @param obj the json_object instance
  * @param new_value the value to be set
@@ -718,21 +718,21 @@ JSON_EXPORT int32_t json_object_get_int(const struct json_object *obj);
  */
 JSON_EXPORT int json_object_set_int(struct json_object *obj,int new_value);
 
-/** Add the int value to the value of a json object
+/** Increment a json_type_int object by the given amount, which may be negative.
  *
- * The type of obj is checked to be a json type int and 0 is returned
- * if it is not without any further actions. If the type of obj is
- * json_type_int the int value is added to the object value.
+ * If the type of obj is not json_type_int then 0 is returned with no further
+ * action taken.
  * If the addition would result in a overflow, the object value
- * is set to INT32_MAX.
+ * is set to INT64_MAX.
  * If the addition would result in a underflow, the object value
- * is set to INT32_MIN.
+ * is set to INT64_MIN.
+ * Neither overflow nor underflow affect the return value.
  *
  * @param obj the json_object instance
  * @param val the value to add
- * @returns 1 if the addition succeded, 0 otherwise
+ * @returns 1 if the increment succeded, 0 otherwise
  */
-JSON_EXPORT int json_object_add_int(struct json_object *obj, int val);
+JSON_EXPORT int json_object_int_inc(struct json_object *obj, int64_t val);
 
 
 /** Get the int value of a json_object
@@ -763,22 +763,6 @@ JSON_EXPORT int64_t json_object_get_int64(const struct json_object *obj);
  */
 JSON_EXPORT int json_object_set_int64(struct json_object *obj,int64_t new_value);
 
-/** Add a int64_t value to the int64_t value of a json_object
- *
- * The type of obj is checked to be a json_type_int and 0 is returned
- * if it is not without any further actions. If the type of obj is
- * json_type_int the int64 value is added to the object value.
- * If the addition to the object would result in a overflow the
- * object value is set to INT64_MAX.
- * If the addition would result in a underflow, the
- * object value is set to INT64_MIN.
- *
- * @param obj the json_object instance
- * @param val the int64_vaule to add
- * @returns 1 if the addition succeeded, 0 otherwise
- */
-JSON_EXPORT int json_object_add_int64(struct json_object *obj, int64_t val);
-
 /* double type methods */
 
 /** Create a new empty json_object of type json_type_double
index 14e935c3ffbc48f17f7535e127a0f6e2202fd096..d0640057550e60b48a4f85285b39e2861a5af80c 100644 (file)
@@ -6,33 +6,39 @@
 int main(int argc, char **argv)
 {
        json_object *tmp = json_object_new_int(123);
-       json_object_add_int(tmp, 123);
+       json_object_int_inc(tmp, 123);
        assert(json_object_get_int(tmp) == 246);
        json_object_put(tmp);
        printf("INT ADD PASSED\n");
        tmp = json_object_new_int(INT32_MAX);
-       json_object_add_int(tmp, 100);
+       json_object_int_inc(tmp, 100);
        assert(json_object_get_int(tmp) == INT32_MAX);
+       assert(json_object_get_int64(tmp) == (long)INT32_MAX + 100L);
        json_object_put(tmp);
        printf("INT ADD OVERFLOW PASSED\n");
        tmp = json_object_new_int(INT32_MIN);
-       json_object_add_int(tmp, -100);
+       json_object_int_inc(tmp, -100);
        assert(json_object_get_int(tmp) == INT32_MIN);
+       assert(json_object_get_int64(tmp) == (long)INT32_MIN - 100L);
        json_object_put(tmp);
        printf("INT ADD UNDERFLOW PASSED\n");
        tmp = json_object_new_int64(321321321);
-       json_object_add_int(tmp, 321321321);
+       json_object_int_inc(tmp, 321321321);
        assert(json_object_get_int(tmp) == 642642642);
        json_object_put(tmp);
        printf("INT64 ADD PASSED\n");
        tmp = json_object_new_int64(INT64_MAX);
-       json_object_add_int64(tmp, 100);
+       json_object_int_inc(tmp, 100);
        assert(json_object_get_int64(tmp) == INT64_MAX);
+       json_object_int_inc(tmp, -100);
+       assert(json_object_get_int64(tmp) != INT64_MAX);
        json_object_put(tmp);
        printf("INT64 ADD OVERFLOW PASSED\n");
        tmp = json_object_new_int64(INT64_MIN);
-       json_object_add_int64(tmp, -100);
+       json_object_int_inc(tmp, -100);
        assert(json_object_get_int64(tmp) == INT64_MIN);
+       json_object_int_inc(tmp, 100);
+       assert(json_object_get_int64(tmp) != INT64_MIN);
        json_object_put(tmp);
        printf("INT64 ADD UNDERFLOW PASSED\n");