[json-glib] Do not sanitize the object member's name
- From: Emmanuele Bassi <ebassi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [json-glib] Do not sanitize the object member's name
- Date: Wed, 12 Aug 2009 11:35:32 +0000 (UTC)
commit 8a7e0f381dc7e49745680df92ebb428f18bf4832
Author: Emmanuele Bassi <ebassi gnome org>
Date: Wed Aug 12 12:29:34 2009 +0100
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.
json-glib/json-object.c | 35 ++++++-----------------------------
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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]