]> granicus.if.org Git - json-c/commitdiff
Really use prefix JSON_C_OBJECT_ADD_*
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 12 Oct 2021 12:42:12 +0000 (14:42 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Tue, 19 Oct 2021 09:18:17 +0000 (11:18 +0200)
This change introduces JSON_C_OBJECT_ADD_CONSTANT_KEY
as a replacement of JSON_C_OBJECT_KEY_IS_CONSTANT.

The description of json_object_object_add_ex tells to
look at the flags JSON_C_OBJECT_ADD_* but it is not
for JSON_C_OBJECT_KEY_IS_CONSTANT.

From the point of vue of a developper using json-c,
the function json_object_object_add_ex is mainly used,
not the hash facility, it seems more natural to provide
a regular naming of prefix JSON_C_OBJECT_ADD_CONSTANT_KEY.

ChangeLog
json_object.c
json_object.h
linkhash.c
linkhash.h

index b63a44309b665bb80c85fe2d72f296af1c28f51a..c6f7454ebbf257ba2035e8701dfeef04611093c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,8 +2,11 @@
 Next Release 0.16
 =====================
 
-...no changes yet...
-
+Significant changes and bug fixes
+---------------------------------
+* Introduction of constant JSON_C_OBJECT_ADD_CONSTANT_KEY
+   as a replacement of JSON_C_OBJECT_KEY_IS_CONSTANT,
+   JSON_C_OBJECT_KEY_IS_CONSTANT becoming legacy.
 
 ***
 
index 9df5809ae71b2694197cae0e72cb93d89aa5136f..bf302e59fa89a07c12a39a05fbd49bd4972e8376 100644 (file)
@@ -607,7 +607,7 @@ int json_object_object_add_ex(struct json_object *jso, const char *const key,
        if (!existing_entry)
        {
                const void *const k =
-                   (opts & JSON_C_OBJECT_KEY_IS_CONSTANT) ? (const void *)key : strdup(key);
+                   (opts & JSON_C_OBJECT_ADD_CONSTANT_KEY) ? (const void *)key : strdup(key);
                if (k == NULL)
                        return -1;
                return lh_table_insert_w_hash(JC_OBJECT(jso)->c_object, k, val, hash, opts);
index d67f3842c3d9701cec45ff2de4251fb7f833f41e..c59289746c096a96aec9eac3236feb42e4129953 100644 (file)
@@ -100,9 +100,17 @@ extern "C" {
  * key is given as a real constant value in the function
  * call, e.g. as in
  *   json_object_object_add_ex(obj, "ip", json,
- *       JSON_C_OBJECT_KEY_IS_CONSTANT);
+ *       JSON_C_OBJECT_ADD_CONSTANT_KEY);
  */
-#define JSON_C_OBJECT_KEY_IS_CONSTANT (1 << 2)
+#define JSON_C_OBJECT_ADD_CONSTANT_KEY (1 << 2)
+/**
+ * This flag is an alias to JSON_C_OBJECT_ADD_CONSTANT_KEY.
+ * Historically, this flag was used first and the new name
+ * JSON_C_OBJECT_ADD_CONSTANT_KEY was introduced for version
+ * 0.16.00 in order to have regular naming.
+ * Use of this flag is now legacy.
+ */
+#define JSON_C_OBJECT_KEY_IS_CONSTANT  JSON_C_OBJECT_ADD_CONSTANT_KEY
 
 /**
  * Set the global value of an option, which will apply to all
index b021ef10b004b99f27419ee0cf19288634945b0b..ec0b9950c50b8356f1527d6c73bbb36e0fe613d5 100644 (file)
@@ -546,7 +546,7 @@ int lh_table_resize(struct lh_table *t, int new_size)
                unsigned long h = lh_get_hash(new_t, ent->k);
                unsigned int opts = 0;
                if (ent->k_is_constant)
-                       opts = JSON_C_OBJECT_KEY_IS_CONSTANT;
+                       opts = JSON_C_OBJECT_ADD_CONSTANT_KEY;
                if (lh_table_insert_w_hash(new_t, ent->k, ent->v, h, opts) != 0)
                {
                        lh_table_free(new_t);
@@ -599,7 +599,7 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con
        }
 
        t->table[n].k = k;
-       t->table[n].k_is_constant = (opts & JSON_C_OBJECT_KEY_IS_CONSTANT);
+       t->table[n].k_is_constant = (opts & JSON_C_OBJECT_ADD_CONSTANT_KEY);
        t->table[n].v = v;
        t->count++;
 
index 0ddfa54df168021f227f07f98a6284473683d025..610ffc1ddb4709ede109935960e806678d041ecb 100644 (file)
@@ -231,7 +231,7 @@ extern int lh_table_insert(struct lh_table *t, const void *k, const void *v);
  * @param k a pointer to the key to insert.
  * @param v a pointer to the value to insert.
  * @param h hash value of the key to insert
- * @param opts if set to JSON_C_OBJECT_KEY_IS_CONSTANT, sets lh_entry.k_is_constant
+ * @param opts if set to JSON_C_OBJECT_ADD_CONSTANT_KEY, sets lh_entry.k_is_constant
  *             so t's free function knows to avoid freeing the key.
  */
 extern int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v,