[json-glib] object: Do some more validation in set_member()



commit f89a50e24d2088061eb7d975db7e6f39beaf853d
Author: Emmanuele Bassi <ebassi linux intel com>
Date:   Mon Jan 10 11:16:17 2011 +0000

    object: Do some more validation in set_member()
    
    Check if we're setting the same node, to avoid a needless replace.

 json-glib/json-object.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/json-glib/json-object.c b/json-glib/json-object.c
index de91ebb..0b5875f 100644
--- a/json-glib/json-object.c
+++ b/json-glib/json-object.c
@@ -188,10 +188,20 @@ json_object_set_member (JsonObject  *object,
                         const gchar *member_name,
                         JsonNode    *node)
 {
+  JsonNode *old_node;
+
   g_return_if_fail (object != NULL);
   g_return_if_fail (member_name != NULL);
   g_return_if_fail (node != NULL);
 
+  old_node = g_hash_table_lookup (object->members, member_name);
+  if (old_node == NULL)
+    goto set_member;
+
+  if (old_node == node)
+    return;
+
+set_member:
   object_set_member_internal (object, member_name, node);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]