Sfoglia il codice sorgente

fix bug causing runaway recursion

David Rose 21 anni fa
parent
commit
ccc5dc547c
1 ha cambiato i file con 9 aggiunte e 2 eliminazioni
  1. 9 2
      panda/src/pgraph/nodePath.cxx

+ 9 - 2
panda/src/pgraph/nodePath.cxx

@@ -3717,9 +3717,16 @@ void NodePath::
 r_find_matches(NodePathCollection &result,
                const FindApproxLevel &level,
                int max_matches, int num_levels_remaining) const {
+  if (pgraph_cat.is_debug()) {
+    pgraph_cat.debug()
+      << "r_find_matches(" << result << ", level, "
+      << max_matches << ", " << num_levels_remaining << ")\n";
+    level.write(pgraph_cat.debug(false));
+  }
+
   // Go on to the next level.  If we exceeded the requested maximum
-  // depth, stop.
-  if (num_levels_remaining <= 0) {
+  // depth (or if there are no more levels to visit), stop.
+  if (num_levels_remaining <= 0 || level._v.empty()) {
     return;
   }
   num_levels_remaining--;