From 6b57cfc68252de3e4114c02034e747995a22affa Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Thu, 14 Mar 2019 17:44:49 +1100 Subject: path: Avoid a match for nested nodes of the same class Signed-off-by: Amitay Isaacs Tested-by: Rashmica Gupta --- src/path.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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); -- cgit v1.2.1