static const PRInt32 kPoolSize = 256;
PRInt32 poolsize = (NS_SIZE_IN_HEAP(MatchSet::kEntrySize) + NS_SIZE_IN_HEAP(MatchSet::kIndexSize)) * matches->Count();
nsXULTemplateBuilder::SynchronizeAll(nsIRDFResource* aSource,                                     nsIRDFResource* aProperty,                                     nsIRDFNode* aOldTarget,                                     nsIRDFNode* aNewTarget){    // Update each match that contains <aSource, aProperty, aOldTarget>.    // Get all the matches whose assignments are currently supported    // by aSource and aProperty: we'll need to recompute them.    const nsTemplateMatchSet* matches;    mConflictSet.GetMatchesWithBindingDependency(aSource, &matches);    if (! matches || matches->Empty())        return NS_OK;    // Since we'll actually be manipulating the match set as we    // iterate through it, we need to copy it into our own private    // area before performing the iteration.    static const size_t kBucketSizes[] = { nsTemplateMatchSet::kEntrySize, nsTemplateMatchSet::kIndexSize };    static const PRInt32 kNumBuckets = sizeof(kBucketSizes) / sizeof(size_t);    // Per news://news.mozilla.org/39BEC105.5090206%40netscape.com    static const PRInt32 kPoolSize = 256;    nsFixedSizeAllocator pool;    pool.Init("nsXULTemplateBuilder::SynchronizeAll", kBucketSizes, kNumBuckets, kPoolSize);    nsTemplateMatchSet copy;    matches->CopyInto(copy, pool);    for (nsTemplateMatchSet::Iterator match = copy.First(); match != copy.Last(); ++match) {        const nsTemplateRule* rule = match->mRule;        // Recompute the assignments. This will replace aOldTarget with        // aNewTarget, which will disrupt the match set.        VariableSet modified;        rule->RecomputeBindings(mConflictSet, match.operator->(),                                aSource, aProperty, aOldTarget, aNewTarget,                                modified);        // If nothing changed, then continue on to the next match.        if (0 == modified.GetCount())            continue;        SynchronizeMatch(match.operator->(), modified);    }    return NS_OK;}