• Stefan Monnier's avatar
    (struct composition): Remove dependency on hash-table internals · cc861fc5
    Stefan Monnier authored
    `struct composition` kept an index into the internal `key_and_value` array
    of hash tables, which only worked because of details of how
    hash-tables are handled.  Replace it with a reference to the
    key stored at that location in the hash-table, which saves us an
    indirection while at it.
    
    * src/composite.h (struct composition): Replace `hash_index` with
    the actual `key`.
    (COMPOSITION_KEY): Simplify accordingly.
    (mark_composite): Declare.
    * src/composite.c (get_composition_id): Adjust accordingly.
    (mark_composite): New function.
    
    * src/charset.c (mark_charset): Uncomment.
    * src/lisp.h (mark_charset): Declare.
    * src/alloc.c (garbage_collect): Call `mark_charset` and `mark_composite`.
    * src/pdumper.c (hash_table_contents): Remove invalid comment, since
    compositions aren't dumped.
    cc861fc5