data tree BUGFIX handle struct cleaning in one place
diff --git a/src/tree_data.c b/src/tree_data.c
index 3841c3a..6015848 100644
--- a/src/tree_data.c
+++ b/src/tree_data.c
@@ -531,8 +531,6 @@
assert(list->nodetype == LYS_LIST);
- memset(keys, 0, sizeof *keys);
-
if (!keys_str) {
/* nothing to parse */
return LY_SUCCESS;
@@ -578,6 +576,8 @@
ret = lyd_value_store(&keys->keys[keys->key_count].val, key, keys->keys[keys->key_count].value, 0, 0,
lydjson_resolve_prefix, NULL, LYD_JSON);
LY_CHECK_GOTO(ret, cleanup);
+ } else {
+ memset(&keys->keys[keys->key_count].val, 0, sizeof keys->keys[keys->key_count].val);
}
/* another valid key */
@@ -585,7 +585,6 @@
}
cleanup:
- ly_keys_clean(keys);
return ret;
}