RemoveMatchesFor(VALUE_TO_IRDFRESOURCE(val));
RemoveMatchesFor(aContainer, VALUE_TO_IRDFRESOURCE(val));
nsXULOutlinerBuilder::CloseContainer(PRInt32 aIndex, nsIRDFResource* aContainer){    NS_ASSERTION(aIndex >= 0 && aIndex < mRows.Count(), "bad row");    if (aIndex < 0 || aIndex >= mRows.Count())        return NS_ERROR_INVALID_ARG;    nsTemplateMatchSet firings(mConflictSet.GetPool());    nsTemplateMatchSet retractions(mConflictSet.GetPool());    mConflictSet.Remove(nsOutlinerRowTestNode::Element(aContainer), firings, retractions);    {        // Clean up the conflict set        nsTemplateMatchSet::ConstIterator last = retractions.Last();        nsTemplateMatchSet::ConstIterator iter;        for (iter = retractions.First(); iter != last; ++iter) {            Value val;            iter->GetAssignmentFor(mConflictSet, iter->mRule->GetMemberVariable(), &val);            RemoveMatchesFor(VALUE_TO_IRDFRESOURCE(val));        }    }    {        // Update the view        nsOutlinerRows::iterator iter = mRows[aIndex];        PRInt32 count = mRows.GetSubtreeSizeFor(iter);        mRows.RemoveSubtreeFor(iter);        if (mBoxObject) {            mBoxObject->InvalidateRow(aIndex);            if (count)                mBoxObject->RowCountChanged(aIndex + 1, -count);        }    }    return NS_OK;}