Patchwork [1/5] QDict: Fix size update

login
register
mail settings
Submitter Luiz Capitulino
Date Dec. 14, 2009, 8:53 p.m.
Message ID <1260824004-2941-2-git-send-email-lcapitulino@redhat.com>
Download mbox | patch
Permalink /patch/41133/
State New
Headers show

Comments

Luiz Capitulino - Dec. 14, 2009, 8:53 p.m.
Key replacement should not update the dictionary's size.

This commit also adds a test for the bug.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 check-qdict.c |    2 ++
 qdict.c       |    3 +--
 2 files changed, 3 insertions(+), 2 deletions(-)

Patch

diff --git a/check-qdict.c b/check-qdict.c
index c37d448..f2b4826 100644
--- a/check-qdict.c
+++ b/check-qdict.c
@@ -205,6 +205,8 @@  START_TEST(qdict_put_exists_test)
 
     value = qdict_get_int(tests_dict, key);
     fail_unless(value == 2);
+
+    fail_unless(qdict_size(tests_dict) == 1);
 }
 END_TEST
 
diff --git a/qdict.c b/qdict.c
index ef73265..ba8eef0 100644
--- a/qdict.c
+++ b/qdict.c
@@ -122,9 +122,8 @@  void qdict_put_obj(QDict *qdict, const char *key, QObject *value)
         /* allocate a new entry */
         entry = alloc_entry(key, value);
         QLIST_INSERT_HEAD(&qdict->table[hash], entry, next);
+        qdict->size++;
     }
-
-    qdict->size++;
 }
 
 /**