[json-glib] Do not sanitize the object member's name



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]