Perform less work for :KEY-AND-VALUE hash-table weakness.
commitd0cb85581a5a64695000b2276b442ce0fe0c6125
authorDouglas Katzman <dougk@google.com>
Wed, 18 Oct 2017 01:43:41 +0000 (17 21:43 -0400)
committerDouglas Katzman <dougk@google.com>
Wed, 18 Oct 2017 02:00:18 +0000 (17 22:00 -0400)
tree9b4b02b81ad471a8f992e6515a35fd1c518df1ff
parent8d01819c999d71235a909ad4aac13089961574ef
Perform less work for :KEY-AND-VALUE hash-table weakness.

Such tables do not need to be repeatedly visited in newspace scavenge.
If only one of the key or value per entry is live, nothing happens.
If both are known live, then nothing need happen, because no new things
become live by dint of visiting a live entry. So only one pass over the
table is required, and as late as possible so that nothing else can
become live. Do that pass just before smashing the non-surviving pairs.
src/runtime/gc-common.c
src/runtime/gc-private.h
src/runtime/gencgc.c