瀏覽代碼

fix bug causing runaway recursion

David Rose 21 年之前
父節點
當前提交
ccc5dc547c
共有 1 個文件被更改,包括 9 次插入2 次删除
  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,
 r_find_matches(NodePathCollection &result,
                const FindApproxLevel &level,
                const FindApproxLevel &level,
                int max_matches, int num_levels_remaining) const {
                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
   // 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;
     return;
   }
   }
   num_levels_remaining--;
   num_levels_remaining--;