Skip to content

Commit bc55131

Browse files
committed
resolve BUGFIX traversing nodes when resolving when
Fixes #259
1 parent f19243b commit bc55131

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/resolve.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5590,14 +5590,20 @@ resolve_when_unlink_nodes(struct lys_node *snode, struct lyd_node **node, struct
55905590
enum lyxp_node_type ctx_node_type, struct lyd_node **unlinked_nodes)
55915591
{
55925592
struct lyd_node *next, *elem;
5593+
const struct lys_node *slast;
55935594

55945595
switch (snode->nodetype) {
55955596
case LYS_AUGMENT:
55965597
case LYS_USES:
55975598
case LYS_CHOICE:
55985599
case LYS_CASE:
5599-
LY_TREE_FOR(snode->child, snode) {
5600-
if (resolve_when_unlink_nodes(snode, node, ctx_node, ctx_node_type, unlinked_nodes)) {
5600+
slast = NULL;
5601+
while ((slast = lys_getnext(slast, snode, NULL, 0))) {
5602+
if (slast->nodetype & (LYS_ACTION | LYS_NOTIF)) {
5603+
continue;
5604+
}
5605+
5606+
if (resolve_when_unlink_nodes((struct lys_node *)slast, node, ctx_node, ctx_node_type, unlinked_nodes)) {
56015607
return -1;
56025608
}
56035609
}

0 commit comments

Comments
 (0)