for (Iterator match = First(); match != last; ++match) PL_HashTableAdd(mMatches, &*match, &*match);
for (Iterator match = First(); match != last; ++match) {       PL_HashTableAdd(mMatches, match.operator->(), NS_REINTERPRET_CAST(void*, 1)); }
MatchSet::Insert(Iterator aIterator, const Match& aMatch){    if (++mCount > kHashTableThreshold && !mMatches) {        // If we've exceeded a high-water mark, then hash everything.        mMatches = PL_NewHashTable(2 * kHashTableThreshold,                                   HashMatch,                                   CompareMatches,                                   PL_CompareValues,                                   nsnull /* XXXwaterson use an arena */,                                   nsnull);        Iterator last = Last();        for (Iterator match = First(); match != last; ++match)            PL_HashTableAdd(mMatches, &*match, &*match);    }    MatchList* newelement = new MatchList();    if (newelement) {        newelement->mMatch = aMatch;        aIterator.mCurrent->mPrev->mNext = newelement;        newelement->mNext = aIterator.mCurrent;        newelement->mPrev = aIterator.mCurrent->mPrev;        aIterator.mCurrent->mPrev = newelement;        if (mMatches)            PL_HashTableAdd(mMatches, &*aIterator, &*aIterator);    }    return aIterator;}