Skip to content
Snippets Groups Projects
Commit 12d78e25 authored by rtoy's avatar rtoy
Browse files

code/hash-new.lisp:

o Add a new slot to the hash-table structure for GC to use for linking
  weak tables together.  (Previously we used the weak-p slot for
  this.  Let's make it explicit, now.  Plus, this allows us to use
  weak-p to indicate other types of weak tables, should they be
  implemented.)

lisp/gencgc.c:
o Update defstruct appropriately.
o Use the new next-weak-table slot to chain the weak tables together.
o Previously we scanned the weak tables in several places in the
  code.  However, this scanning also removed entries.  I don't think
  we want that because later scans could make a key valid.  Thus:

  - Change scav_hash_entries so that it doesn't remove a hash-table
    entry unless told to.
  - Add new function to scavenge weak tables without removing a weak
    entry.
  - Adjust scan_weak_tables to remove weak entries.

NOTE:  When building, you'll be asked twice about the hash-table
structure changing size.  Just select the CLOBBER-IT restart in both
cases.
parent 46c8cece
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment