]> git.unchartedbackwaters.co.uk Git - francis/stp.git/commitdiff
Less Memory. Cache less frequently.
authortrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Tue, 1 Feb 2011 12:41:57 +0000 (12:41 +0000)
committertrevor_hansen <trevor_hansen@e59a4935-1847-0410-ae03-e826735625c1>
Tue, 1 Feb 2011 12:41:57 +0000 (12:41 +0000)
git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1111 e59a4935-1847-0410-ae03-e826735625c1

src/simplifier/VariablesInExpression.cpp

index 278b2c6f48cc9c2a76a0b4be4fb974a23c731f9c..ffabcf8de8f36c87a7dada480401ab1ac65ceff1 100644 (file)
@@ -66,6 +66,14 @@ void VariablesInExpression::VarSeenInTerm(Symbols* term, SymbolPtrSet& visited,
        if (visited.find(term) != visited.end()) {
                return;
        }
+
+       if (term->isLeaf()) {
+               found.insert(term->found);
+               return;
+       }
+
+       visited.insert(term);
+
        SymbolPtrToNode::const_iterator it;
        if ((it = TermsAlreadySeenMap.find(term)) != TermsAlreadySeenMap.end()) {
                // We've previously built the set of variables below this "symbols".
@@ -77,17 +85,11 @@ void VariablesInExpression::VarSeenInTerm(Symbols* term, SymbolPtrSet& visited,
                return;
        }
 
-       if (term->isLeaf()) {
-               found.insert(term->found);
-               return;
-       }
-
        for (vector<Symbols*>::const_iterator it = term->children.begin(), itend =
                        term->children.end(); it != itend; it++) {
                VarSeenInTerm(*it, visited, found, av);
        }
 
-       visited.insert(term);
        return;
 }//End of VarSeenInTerm
 
@@ -148,7 +150,7 @@ bool VariablesInExpression::VarSeenInTerm(const ASTNode& var,
        //cerr << "Term is const" << term.isConstant() << endl;
 
 
-       if (visited.size() > 150) // No use caching it, unless we've done some work.
+       if (visited.size() > 250) // No use caching it, unless we've done some work.
        {
                sort(av.begin(), av.end());