summaryrefslogtreecommitdiff
path: root/json-glib/json-object.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2009-08-12 12:29:34 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2009-08-12 12:29:34 +0100
commit8a7e0f381dc7e49745680df92ebb428f18bf4832 (patch)
tree56213c738a91805871415242185f1928a1d9062f /json-glib/json-object.c
parentad638149c2cc1a17c0d2ad1482d932c8940c64e0 (diff)
downloadjson-glib-8a7e0f381dc7e49745680df92ebb428f18bf4832.tar.gz
Do not sanitize the object member's name
JsonObject sanitizes the name of the member to replace all characters defined by G_STR_DELIMITERS with '_'. This is absolutely brain damaged, since a member name can be any valid JSON string. Obviously, if a member name maps to a GObject property is entirely up to the GObject code to decide whether to sanitize the member name or not.
Diffstat (limited to 'json-glib/json-object.c')
-rw-r--r--json-glib/json-object.c35
1 files changed, 6 insertions, 29 deletions
diff --git a/json-glib/json-object.c b/json-glib/json-object.c
index 0cc6d55..d1bbe98 100644
--- a/json-glib/json-object.c
+++ b/json-glib/json-object.c
@@ -139,10 +139,9 @@ object_set_member_internal (JsonObject *object,
const gchar *member_name,
JsonNode *node)
{
- gchar *name;
-
- name = g_strdelimit (g_strdup (member_name), G_STR_DELIMITERS, '_');
- g_hash_table_replace (object->members, name, node);
+ g_hash_table_replace (object->members,
+ g_strdup (member_name),
+ node);
}
/**
@@ -164,8 +163,6 @@ json_object_add_member (JsonObject *object,
const gchar *member_name,
JsonNode *node)
{
- gchar *name;
-
g_return_if_fail (object != NULL);
g_return_if_fail (member_name != NULL);
g_return_if_fail (node != NULL);
@@ -523,16 +520,7 @@ static inline JsonNode *
object_get_member_internal (JsonObject *object,
const gchar *member_name)
{
- JsonNode *retval;
- gchar *name;
-
- name = g_strdelimit (g_strdup (member_name), G_STR_DELIMITERS, '_');
-
- retval = g_hash_table_lookup (object->members, name);
-
- g_free (name);
-
- return retval;
+ return g_hash_table_lookup (object->members, member_name);
}
/**
@@ -778,17 +766,10 @@ gboolean
json_object_has_member (JsonObject *object,
const gchar *member_name)
{
- gchar *name;
- gboolean retval;
-
g_return_val_if_fail (object != NULL, FALSE);
g_return_val_if_fail (member_name != NULL, FALSE);
- name = g_strdelimit (g_strdup (member_name), G_STR_DELIMITERS, '_');
- retval = (g_hash_table_lookup (object->members, name) != NULL);
- g_free (name);
-
- return retval;
+ return (g_hash_table_lookup (object->members, member_name) != NULL);
}
/**
@@ -818,14 +799,10 @@ void
json_object_remove_member (JsonObject *object,
const gchar *member_name)
{
- gchar *name;
-
g_return_if_fail (object != NULL);
g_return_if_fail (member_name != NULL);
- name = g_strdelimit (g_strdup (member_name), G_STR_DELIMITERS, '_');
- g_hash_table_remove (object->members, name);
- g_free (name);
+ g_hash_table_remove (object->members, member_name);
}
typedef struct _ForeachClosure ForeachClosure;