Small change to documentation in NodeManager::getType
authorChristopher L. Conway <christopherleeconway@gmail.com>
Wed, 27 Oct 2010 22:53:09 +0000 (22:53 +0000)
committerChristopher L. Conway <christopherleeconway@gmail.com>
Wed, 27 Oct 2010 22:53:09 +0000 (22:53 +0000)
src/expr/node_manager.cpp

index b0592ba2f0bc8813a9cdff53dac0afc4f4a641e4..2f5ba682456448f6385d10894022a8bba110a32d 100644 (file)
@@ -430,15 +430,17 @@ TypeNode NodeManager::getType(TNode n, bool check)
     stack<TNode> worklist;
     worklist.push(n);
 
-    /* Iterate and compute the children bottom up. */
+    /* Iterate and compute the children bottom up. This avoids stack
+       overflows in computeType() when the Node graph is really
+       deep. */
     while( !worklist.empty() ) {
       TNode m = worklist.top();
 
       bool readyToCompute = true;
-      TNode::iterator it = m.begin();
-      TNode::iterator end = m.end();
 
-      for( ; it != end; ++it ) {
+      for( TNode::iterator it = m.begin(), end = m.end() ; 
+           it != end; 
+           ++it ) {
         if( !hasAttribute(*it, TypeAttr()) 
             || (check && !getAttribute(*it, TypeCheckedAttr())) ) {
           readyToCompute = false;