schema CHANGE support extension instance top-level in ly_path_compile()
For further support of serching schema nodes in extension instance
instead of the standard module tree, we need to extend internal
ly_path_compile().
diff --git a/src/path.h b/src/path.h
index a6e8149..9074191 100644
--- a/src/path.h
+++ b/src/path.h
@@ -149,6 +149,9 @@
* @param[in] cur_mod Current module of the path (where it was "instantiated"). Used for nodes without a prefix
* for ::LY_PREF_SCHEMA* format.
* @param[in] ctx_node Optional context node.
+ * @param[in] ext Extension instance containing the definition of the data being created. It is used to find the top-level
+ * node inside the extension instance instead of a module. Note that this is the case not only if the @p ctx_node is NULL,
+ * but also if the relative path starting in @p ctx_node reaches the document root via double dots.
* @param[in] expr Parsed path.
* @param[in] lref Lref option (@ref path_lref_options).
* @param[in] oper Oper option (@ref path_oper_options).
@@ -160,8 +163,8 @@
* @return LY_ERR value.
*/
LY_ERR ly_path_compile(const struct ly_ctx *ctx, const struct lys_module *cur_mod, const struct lysc_node *ctx_node,
- const struct lyxp_expr *expr, uint8_t lref, uint8_t oper, uint8_t target, LY_PREFIX_FORMAT format,
- void *prefix_data, struct lys_glob_unres *unres, struct ly_path **path);
+ const struct lysc_ext_instance *ext, const struct lyxp_expr *expr, uint8_t lref, uint8_t oper, uint8_t target,
+ LY_PREFIX_FORMAT format, void *prefix_data, struct lys_glob_unres *unres, struct ly_path **path);
/**
* @brief Compile predicate into ly_path_predicate structure. Only simple predicates (not leafref) are supported.