#include "muse_core_internal.h"
static muse_core_msg_t *g_muse_core_msg = NULL;
+static GMutex g_muse_msg_lock;
static void _muse_core_msg_json_set_error(muse_core_msg_parse_err_e *err, int jerr);
static json_object *_muse_core_msg_json_tokener_parse_len(const char *str, int *len, muse_core_msg_parse_err_e *err);
static json_object *_muse_core_msg_json_tokener_parse_len(const char *str, int *len, muse_core_msg_parse_err_e *err)
{
- struct json_tokener *tok;
- struct json_object *obj;
+ struct json_tokener *tok = NULL;
+ struct json_object *obj = NULL;
g_return_val_if_fail(str, NULL);
- if (g_muse_core_msg)
- g_mutex_lock(&g_muse_core_msg->msg_lock);
+ g_mutex_lock(&g_muse_msg_lock);
tok = json_tokener_new();
- g_return_val_if_fail(tok, NULL);
+ if (!tok) {
+ LOGE("tokener creation error");
+ goto out;
+ }
obj = json_tokener_parse_ex(tok, str, strlen(str));
+
if (!obj) {
LOGE("parsing error : %s", str);
goto out;
_muse_core_msg_json_set_error(err, tok->err);
out:
- json_tokener_free(tok);
-
- if (g_muse_core_msg)
- g_mutex_unlock(&g_muse_core_msg->msg_lock);
+ if (tok)
+ json_tokener_free(tok);
+ g_mutex_unlock(&g_muse_msg_lock);
return obj;
}
g_return_val_if_fail(jobj, FALSE);
g_return_val_if_fail(data, FALSE);
- if (g_muse_core_msg)
- g_mutex_lock(&g_muse_core_msg->msg_lock);
-
val = _muse_core_msg_json_find_obj((json_object *)jobj, key);
if (!val) {
LOGE("\"%s\" key is not founded", key);
break;
}
- if (g_muse_core_msg)
- g_mutex_unlock(&g_muse_core_msg->msg_lock);
-
return TRUE;
}
{
g_return_if_fail(g_muse_core_msg);
- g_mutex_clear(&g_muse_core_msg->msg_lock);
-
MUSE_FREE(g_muse_core_msg);
}
g_muse_core_msg->get_value = get_value;
g_muse_core_msg->jobj_free = jobj_free;
g_muse_core_msg->free = free;
-
- g_mutex_init(&g_muse_core_msg->msg_lock);
}
char *muse_core_msg_json_factory_new(int api, ...)