summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/path.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c
index a745838..e6c9d94 100644
--- a/src/path.c
+++ b/src/path.c
@@ -270,6 +270,19 @@ static void path_pattern_match(struct pdbg_target *target,
}
}
+ /*
+ * If we find the same class nested which is not a match,
+ * then stop recursion
+ */
+ if (level > 0 && !strcmp(tok, pats[level-1].prefix)) {
+ if (pats[level-1].match_index) {
+ int index = pdbg_target_index(target);
+
+ if (pats[level-1].index[index] != 1)
+ return;
+ }
+ }
+
end:
pdbg_for_each_child_target(target, child) {
path_pattern_match(child, pats, max_levels, next);
OpenPOWER on IntegriCloud