/* -----------------------------------------------------------------------------
- * $Id: Stable.c,v 1.20 2002/04/09 12:56:36 simonmar Exp $
+ * $Id: Stable.c,v 1.22 2002/08/16 13:29:07 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*/
snEntry *stable_ptr_table;
-snEntry *stable_ptr_free;
+static snEntry *stable_ptr_free;
-unsigned int SPT_size;
+static unsigned int SPT_size;
/* This hash table maps Haskell objects to stable names, so that every
* call to lookupStableName on a given object will return the same
* to the weight stored in the table entry.
* */
-HashTable *addrToStableHash;
+static HashTable *addrToStableHash;
#define INIT_SPT_SIZE 64
// If this entry has no StableName attached, then just free it
// immediately. This is important; it might be a while before the
// next major GC which actually collects the entry.
- if (sn->sn_obj == NULL) {
+ if (sn->sn_obj == NULL && sn->ref == 0) {
freeStableName(sn);
}
}