* 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
*/
static GMemChunk *node_mem_chunk = NULL;
-static G_LOCK_DEFINE(node_mem_chunk);
+G_LOCK_DEFINE_STATIC (node_mem_chunk);
GCache*
g_cache_new (GCacheNewFunc value_new_func,
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)
{
{
GCacheNode *node;
- g_lock (node_mem_chunk);
+ G_LOCK (node_mem_chunk);
if (!node_mem_chunk)
node_mem_chunk = g_mem_chunk_new ("cache node mem chunk", sizeof (GCacheNode),
1024, G_ALLOC_AND_FREE);
node = g_chunk_new (GCacheNode, node_mem_chunk);
- g_unlock (node_mem_chunk);
+ G_UNLOCK (node_mem_chunk);
node->value = value;
node->ref_count = 1;
static void
g_cache_node_destroy (GCacheNode *node)
{
- g_lock (node_mem_chunk);
+ G_LOCK (node_mem_chunk);
g_mem_chunk_free (node_mem_chunk, node);
- g_unlock (node_mem_chunk);
+ G_UNLOCK (node_mem_chunk);
}