We don't actually use the refcounting bits.
Signed-off-by: Arun Raghavan <arun@arunraghavan.net>
break;
}
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return type;
}
if (pa_json_object_get_type(o) != PA_JSON_TYPE_INT) {
pa_log_debug("Format info property '%s' type is not int.", key);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return -PA_ERR_INVALID;
}
*v = pa_json_object_get_int(o);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return 0;
}
if (ret < 0)
pa_log_debug("Format info property '%s' is not a valid int range.", key);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return ret;
}
if (ret < 0)
pa_log_debug("Format info property '%s' is not a valid int array.", key);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return ret;
}
if (pa_json_object_get_type(o) != PA_JSON_TYPE_STRING) {
pa_log_debug("Format info property '%s' type is not string.", key);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return -PA_ERR_INVALID;
}
*v = pa_xstrdup(pa_json_object_get_string(o));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return 0;
}
if (ret < 0)
pa_log_debug("Format info property '%s' is not a valid string array.", key);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return ret;
}
out:
if (o1)
- pa_json_object_unref(o1);
+ pa_json_object_free(o1);
if (o2)
- pa_json_object_unref(o2);
+ pa_json_object_free(o2);
return ret;
}
#include <pulse/xmalloc.h>
#include <pulsecore/core-util.h>
#include <pulsecore/hashmap.h>
-#include <pulsecore/refcnt.h>
#include <pulsecore/strbuf.h>
#define MAX_NESTING_DEPTH 20 /* Arbitrary number to make sure we don't have a stack overflow */
struct pa_json_object {
- PA_REFCNT_DECLARE;
pa_json_type type;
union {
pa_json_object *name = NULL, *value = NULL;
obj->object_values = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func,
- pa_xfree, (pa_free_cb_t) pa_json_object_unref);
+ pa_xfree, (pa_free_cb_t) pa_json_object_free);
while (*str != '}') {
str++; /* Consume leading '{' or ',' */
}
pa_hashmap_put(obj->object_values, pa_xstrdup(pa_json_object_get_string(name)), value);
- pa_json_object_unref(name);
+ pa_json_object_free(name);
name = NULL;
value = NULL;
obj->object_values = NULL;
if (name)
- pa_json_object_unref(name);
+ pa_json_object_free(name);
if (value)
- pa_json_object_unref(value);
+ pa_json_object_free(value);
return NULL;
}
return str;
error:
- pa_idxset_free(obj->array_values, (pa_free_cb_t) pa_json_object_unref);
+ pa_idxset_free(obj->array_values, (pa_free_cb_t) pa_json_object_free);
obj->array_values = NULL;
return NULL;
}
return str;
error:
- pa_json_object_unref(o);
+ pa_json_object_free(o);
return NULL;
}
if (*str != '\0') {
pa_log("Unable to parse complete JSON string, remainder is: %s", str);
- pa_json_object_unref(obj);
+ pa_json_object_free(obj);
return NULL;
}
return obj->type;
}
-void pa_json_object_unref(pa_json_object *obj) {
- if (PA_REFCNT_DEC(obj) > 0)
- return;
+void pa_json_object_free(pa_json_object *obj) {
switch (pa_json_object_get_type(obj)) {
case PA_JSON_TYPE_INIT:
break;
case PA_JSON_TYPE_ARRAY:
- pa_idxset_free(obj->array_values, (pa_free_cb_t) pa_json_object_unref);
+ pa_idxset_free(obj->array_values, (pa_free_cb_t) pa_json_object_free);
break;
default:
pa_json_object* pa_json_parse(const char *str);
pa_json_type pa_json_object_get_type(const pa_json_object *obj);
-void pa_json_object_unref(pa_json_object *obj);
+void pa_json_object_free(pa_json_object *obj);
/* All pointer members that are returned are valid while the corresponding object is valid */
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_STRING);
fail_unless(pa_streq(pa_json_object_get_string(o), strings_compare[i]));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
}
END_TEST
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_INT);
fail_unless(pa_json_object_get_int(o) == ints_compare[i]);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
}
END_TEST
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_DOUBLE);
fail_unless(PA_DOUBLE_IS_EQUAL(pa_json_object_get_double(o), doubles_compare[i]));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
}
END_TEST
fail_unless(o != NULL);
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_NULL);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
END_TEST
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_BOOL);
fail_unless(pa_json_object_get_bool(o) == true);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse("false");
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_BOOL);
fail_unless(pa_json_object_get_bool(o) == false);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
END_TEST
fail_unless(pa_json_object_get_type(v) == PA_JSON_TYPE_STRING);
fail_unless(pa_streq(pa_json_object_get_string(v), "A Person"));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse(" { \"age\" : -45.3e-0 } ");
fail_unless(pa_json_object_get_type(v) == PA_JSON_TYPE_DOUBLE);
fail_unless(PA_DOUBLE_IS_EQUAL(pa_json_object_get_double(v), -45.3));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse("{\"person\":true}");
fail_unless(pa_json_object_get_type(v) == PA_JSON_TYPE_BOOL);
fail_unless(pa_json_object_get_bool(v) == true);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse("{ \"parent\": { \"child\": false } }");
fail_unless(o != NULL);
fail_unless(pa_json_object_get_type(v) == PA_JSON_TYPE_BOOL);
fail_unless(pa_json_object_get_bool(v) == false);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
END_TEST
fail_unless(pa_json_object_get_type(o) == PA_JSON_TYPE_ARRAY);
fail_unless(pa_json_object_get_array_length(o) == 0);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse("[\"a member\"]");
fail_unless(pa_json_object_get_type(v) == PA_JSON_TYPE_STRING);
fail_unless(pa_streq(pa_json_object_get_string(v), "a member"));
- pa_json_object_unref(o);
+ pa_json_object_free(o);
o = pa_json_parse("[\"a member\", 1234.5, { \"another\": true } ]");
fail_unless(pa_json_object_get_type(v2) == PA_JSON_TYPE_BOOL);
fail_unless(pa_json_object_get_bool(v2) == true);
- pa_json_object_unref(o);
+ pa_json_object_free(o);
}
END_TEST