Don't crash if removing a nonexistent value.
[platform/upstream/glib.git] / gcache.c
index 48b6111..dc58f07 100644 (file)
--- a/gcache.c
+++ b/gcache.c
  * Boston, MA 02111-1307, USA.
  */
 
+/*
+ * Modified by the GLib Team and others 1997-1999.  See the AUTHORS
+ * file for a list of people on the GLib Team.  See the ChangeLog
+ * files for a list of changes.  These files are distributed with
+ * GLib at ftp://ftp.gtk.org/pub/gtk/. 
+ */
+
 /* 
  * MT safe
  */
@@ -150,6 +157,9 @@ g_cache_remove (GCache   *cache,
   key = g_hash_table_lookup (rcache->value_table, value);
   node = g_hash_table_lookup (rcache->key_table, key);
 
+  if (node == NULL)
+    return;
+
   node->ref_count -= 1;
   if (node->ref_count == 0)
     {