X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FStable.c;h=7bfd15ecaabc74e83a51cd3507e1f9616d8ec90d;hb=97906cfcc30dd591e840921d336fdabeb1b8a315;hp=5cf9c28105406ecf8869a6a4351f299ff70b2210;hpb=32c9a0258c35c5a10216250d5ee0f8c92c519e33;p=ghc-hetmet.git diff --git a/ghc/rts/Stable.c b/ghc/rts/Stable.c index 5cf9c28..7bfd15e 100644 --- a/ghc/rts/Stable.c +++ b/ghc/rts/Stable.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $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 * @@ -88,9 +88,9 @@ */ 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 @@ -125,7 +125,7 @@ unsigned int SPT_size; * to the weight stored in the table entry. * */ -HashTable *addrToStableHash; +static HashTable *addrToStableHash; #define INIT_SPT_SIZE 64 @@ -245,7 +245,7 @@ freeStablePtr(StgStablePtr sp) // 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); } }