Changeset 10824


Ignore:
Timestamp:
Sep 22, 2008, 3:11:24 PM (11 years ago)
Author:
gz
Message:

PPC part of r10813

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/ppc-gc.c

    r10364 r10824  
    559559        */
    560560        LispObj flags = ((hash_table_vector_header *) base)->flags;
     561
     562        if ((flags & nhash_keys_frozen_mask) &&
     563            (((hash_table_vector_header *) base)->deleted_count > 0)) {
     564          /* We're responsible for clearing out any deleted keys, since
     565             lisp side can't do it without breaking the state machine
     566          */
     567          LispObj *pairp = base + hash_table_vector_header_count;
     568          natural
     569            npairs = (element_count - (hash_table_vector_header_count - 1)) >> 1;
     570
     571          while (npairs--) {
     572            if ((pairp[1] == unbound) && (pairp[0] != unbound)) {
     573              pairp[0] = slot_unbound;
     574            }
     575            pairp +=2;
     576          }
     577          ((hash_table_vector_header *) base)->deleted_count = 0;
     578        }
     579
    561580
    562581        if (flags & nhash_weak_mask) {
Note: See TracChangeset for help on using the changeset viewer.