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;