4669 |
Weak Hash Tables |
Weak Hash Tables |
4670 |
************************************************************************/ |
************************************************************************/ |
4671 |
|
|
4672 |
|
#ifndef BOEHM_GC |
4673 |
/* Sweep weak hash table H. REMOVE_ENTRIES_P non-zero means remove |
/* Sweep weak hash table H. REMOVE_ENTRIES_P non-zero means remove |
4674 |
entries from the table that don't survive the current GC. |
entries from the table that don't survive the current GC. |
4675 |
REMOVE_ENTRIES_P zero means mark entries that are in use. Value is |
REMOVE_ENTRIES_P zero means mark entries that are in use. Value is |
4792 |
h = XHASH_TABLE (table); |
h = XHASH_TABLE (table); |
4793 |
next = h->next_weak; |
next = h->next_weak; |
4794 |
|
|
4795 |
|
#ifdef BOEHM_GC |
4796 |
|
if (GC_is_marked (h)) |
4797 |
|
#else |
4798 |
if (h->size & ARRAY_MARK_FLAG) |
if (h->size & ARRAY_MARK_FLAG) |
4799 |
|
#endif |
4800 |
{ |
{ |
4801 |
/* TABLE is marked as used. Sweep its contents. */ |
/* TABLE is marked as used. Sweep its contents. */ |
4802 |
if (XFASTINT (h->count) > 0) |
if (XFASTINT (h->count) > 0) |
4810 |
|
|
4811 |
Vweak_hash_tables = used; |
Vweak_hash_tables = used; |
4812 |
} |
} |
4813 |
|
#endif /* BOEHM_GC */ |
|
|
|
4814 |
|
|
4815 |
/*********************************************************************** |
/*********************************************************************** |
4816 |
Hash Code Computation |
Hash Code Computation |