Remove(nsIContent* aContent) { NS_ASSERTION(PL_DHASH_ENTRY_IS_BUSY(PL_DHashTableOperate(&mTable, aContent, PL_DHASH_LOOKUP)), "aContent not in map");  PL_DHashTableOperate(&mTable, aContent, PL_DHASH_REMOVE);  PRInt32 count;      nsCOMPtr<nsIXULContent> xulcontent = do_QueryInterface(aContent); if (xulcontent) { xulcontent->PeekChildCount(count); } else { aContent->ChildCount(count); }  for (PRInt32 i = 0; i < count; ++i) { nsCOMPtr<nsIContent> child; aContent->ChildAt(i, *getter_AddRefs(child));  Remove(child); } }
MatchSet::Remove(Match* aMatch) { Iterator doomed = Find(*aMatch); if (doomed != Last()) Erase(doomed); }
        Remove(nsIContent* aContent) {            NS_ASSERTION(PL_DHASH_ENTRY_IS_BUSY(PL_DHashTableOperate(&mTable, aContent, PL_DHASH_LOOKUP)),                         "aContent not in map");            PL_DHashTableOperate(&mTable, aContent, PL_DHASH_REMOVE);            PRInt32 count;            // If possible, use the special nsIXULContent interface to            // "peek" at the child count without accidentally creating            // children as a side effect, since we're about to rip 'em            // outta the map anyway.            nsCOMPtr<nsIXULContent> xulcontent = do_QueryInterface(aContent);            if (xulcontent) {                xulcontent->PeekChildCount(count);            }            else {                aContent->ChildCount(count);            }            for (PRInt32 i = 0; i < count; ++i) {                nsCOMPtr<nsIContent> child;                aContent->ChildAt(i, *getter_AddRefs(child));                Remove(child);            } }