]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
2004-11-26 Havoc Pennington <hp@redhat.com>
authorHavoc Pennington <hp@redhat.com>
Fri, 26 Nov 2004 07:03:05 +0000 (07:03 +0000)
committerHavoc Pennington <hp@redhat.com>
Fri, 26 Nov 2004 07:03:05 +0000 (07:03 +0000)
* dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
where I was trying to cache one too many messages

ChangeLog
dbus/dbus-message.c

index 1cb9bc9266ee4080ada05dcd96d61dccab73eb2a..3e4778b29e3214c088afa96b11640910fa9cdeec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-26  Havoc Pennington  <hp@redhat.com>
+
+       * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
+       where I was trying to cache one too many messages
+
 2004-11-26  Havoc Pennington  <hp@redhat.com>
 
        * dbus/dbus-message.c: reimplement message cache as an array which 
index db9bc1956b8bc232ad9271e84d3ab8e12e6c51d7..a76d3b55609bc3aed3d2309aa3ce477fb62b6701 100644 (file)
@@ -1486,6 +1486,12 @@ dbus_message_get_cached (void)
       return NULL;
     }
 
+  /* This is not necessarily true unless count > 0, and
+   * message_cache is uninitialized until the shutdown is
+   * registered
+   */
+  _dbus_assert (message_cache_shutdown_registered);
+  
   i = 0;
   while (i < MAX_MESSAGE_CACHE_SIZE)
     {
@@ -1498,6 +1504,7 @@ dbus_message_get_cached (void)
         }
       ++i;
     }
+  _dbus_assert (message_cache_count >= 0);
   _dbus_assert (i < MAX_MESSAGE_CACHE_SIZE);
   _dbus_assert (message != NULL);
 
@@ -1559,15 +1566,15 @@ dbus_message_cache_or_finalize (DBusMessage *message)
       MAX_MESSAGE_SIZE_TO_CACHE)
     goto out;
   
-  if (message_cache_count > MAX_MESSAGE_CACHE_SIZE)
+  if (message_cache_count >= MAX_MESSAGE_CACHE_SIZE)
     goto out;
 
+  /* Find empty slot */
   i = 0;
   while (message_cache[i] != NULL)
-    {
-      ++i;
-      _dbus_assert (i < MAX_MESSAGE_CACHE_SIZE);
-    }
+    ++i;
+
+  _dbus_assert (i < MAX_MESSAGE_CACHE_SIZE);
 
   _dbus_assert (message_cache[i] == NULL);
   message_cache[i] = message;