Exemple #1
0
void StringData::sweepAll() {
  SweepNode& head = MemoryManager::TheMemoryManager()->m_strings;
  for (SweepNode *next, *n = head.next; n != &head; n = next) {
    next = n->next;
    assert(next && uintptr_t(next) != kSmartFreeWord);
    assert(next && uintptr_t(next) != kMallocFreeWord);
    StringData* s = (StringData*)(uintptr_t(n) -
                                  offsetof(StringData, m_big.node));
    assert(s->isShared());
    s->m_big.shared->decRef();
  }
  head.next = head.prev = &head;
}