InstantiationSet::ConstIterator last = aInstantiations.Last(); for (InstantiationSet::ConstIterator inst = aInstantiations.First(); inst != last; ++inst) { nsAssignmentSet assignments = inst->mAssignments;
AutoSentry guard(&mIsBuilding);
InstantiationNode::Propogate(const InstantiationSet& aInstantiations, void* aClosure){    // If we get here, we've matched the rule associated with this    // node. Extend it with any <bindings> that we might have, add it    // to the conflict set, and the set of new <content, member>    // pairs.    ClusterKeySet* newkeys = NS_STATIC_CAST(ClusterKeySet*, aClosure);    InstantiationSet::ConstIterator last = aInstantiations.Last();    for (InstantiationSet::ConstIterator inst = aInstantiations.First(); inst != last; ++inst) {        nsAssignmentSet assignments = inst->mAssignments;        Match* match = new (mConflictSet.GetPool()) Match(mRule, *inst, assignments);        if (! match)            return NS_ERROR_OUT_OF_MEMORY;        mRule->InitBindings(mConflictSet, match);        mConflictSet.Add(match);        // Give back our "local" reference. The conflict set will have        // taken what it needs.        match->Release();        newkeys->Add(ClusterKey(*inst, mRule));    }        return NS_OK;}