You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by mi...@apache.org on 2018/09/01 10:01:21 UTC

svn commit: r1839812 - in /apr/apr/trunk/json: apr_json.c apr_json_decode.c

Author: minfrin
Date: Sat Sep  1 10:01:21 2018
New Revision: 1839812

URL: http://svn.apache.org/viewvc?rev=1839812&view=rev
Log:
Revert 1839779 for now to unblock apr_jose.h.

Modified:
    apr/apr/trunk/json/apr_json.c
    apr/apr/trunk/json/apr_json_decode.c

Modified: apr/apr/trunk/json/apr_json.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/json/apr_json.c?rev=1839812&r1=1839811&r2=1839812&view=diff
==============================================================================
--- apr/apr/trunk/json/apr_json.c (original)
+++ apr/apr/trunk/json/apr_json.c Sat Sep  1 10:01:21 2018
@@ -129,50 +129,21 @@ apr_json_value_t *apr_json_null_create(a
     return json;
 }
 
-apr_status_t apr__json_object_set(apr_json_value_t *object,
-        apr_json_value_t *key, apr_json_value_t *val, apr_pool_t *pool);
-
-apr_status_t apr__json_object_set(apr_json_value_t *object,
-        apr_json_value_t *key, apr_json_value_t *val, apr_pool_t *pool)
-{
-    apr_json_kv_t *kv;
-    apr_hash_t *hash;
-
-    hash = object->value.object->hash;
-
-    kv = apr_hash_get(hash, key->value.string.p, key->value.string.len);
-    if (!kv) {
-        kv = apr_palloc(pool, sizeof(apr_json_kv_t));
-        if (!kv) {
-            return APR_ENOMEM;
-        }
-
-        APR_RING_ELEM_INIT(kv, link);
-        APR_JSON_OBJECT_INSERT_TAIL(object->value.object, kv);
-        apr_hash_set(hash, key->value.string.p, key->value.string.len, kv);
-    }
-
-    kv->k = key;
-    kv->v = val;
-
-    return APR_SUCCESS;
-}
-
 apr_status_t apr_json_object_set(apr_json_value_t *object, const char *key,
         apr_ssize_t klen, apr_json_value_t *val, apr_pool_t *pool)
 {
-    apr_json_value_t *k;
+    apr_json_kv_t *kv;
+    apr_hash_t *hash;
 
     if (object->type != APR_JSON_OBJECT) {
         return APR_EINVAL;
     }
 
-    if (!val) {
-        apr_hash_t *hash;
-        apr_json_kv_t *kv;
+    hash = object->value.object->hash;
+
+    kv = apr_hash_get(hash, key, klen);
 
-        hash = object->value.object->hash;
-        kv = apr_hash_get(hash, key, klen);
+    if (!val) {
         if (kv) {
             apr_hash_set(hash, key, klen, NULL);
             APR_RING_REMOVE((kv), link);
@@ -180,12 +151,17 @@ apr_status_t apr_json_object_set(apr_jso
         return APR_SUCCESS;
     }
 
-    k = apr_json_string_create(pool, key, klen);
-    if (!k) {
-        return APR_ENOMEM;
+    if (!kv) {
+        kv = apr_palloc(pool, sizeof(apr_json_kv_t));
+        APR_RING_ELEM_INIT(kv, link);
+        APR_JSON_OBJECT_INSERT_TAIL(object->value.object, kv);
+        kv->k = apr_json_string_create(pool, key, klen);
+        apr_hash_set(hash, kv->k->value.string.p, kv->k->value.string.len, kv);
     }
 
-    return apr__json_object_set(object, k, val, pool);
+    kv->v = val;
+
+    return APR_SUCCESS;
 }
 
 apr_json_kv_t *apr_json_object_get(apr_json_value_t *object, const char *key, apr_ssize_t klen)

Modified: apr/apr/trunk/json/apr_json_decode.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/json/apr_json_decode.c?rev=1839812&r1=1839811&r2=1839812&view=diff
==============================================================================
--- apr/apr/trunk/json/apr_json_decode.c (original)
+++ apr/apr/trunk/json/apr_json_decode.c Sat Sep  1 10:01:21 2018
@@ -424,9 +424,6 @@ static apr_status_t apr_json_decode_arra
     return status;
 }
 
-apr_status_t apr__json_object_set(apr_json_value_t *object,
-        apr_json_value_t *key, apr_json_value_t *val, apr_pool_t *pool);
-
 static apr_status_t apr_json_decode_object(apr_json_scanner_t * self,
         apr_json_value_t *json, apr_json_object_t ** retval)
 {
@@ -503,7 +500,8 @@ static apr_status_t apr_json_decode_obje
         if ((status = apr_json_decode_value(self, &value)))
             goto out;
 
-        apr__json_object_set(json, key, value, self->pool);
+        apr_json_object_set(json, key->value.string.p, key->value.string.len,
+                            value, self->pool);
 
         if (self->p == self->e) {
             status = APR_EOF;