schema CHANGE convert 0-terminated arrays to sized-arrays
Introduce new "sized-arrays" - needed size is the same or smaller as for
0-terminated (terminated by zero pointer, so actually 4-8 bytes). But it
also directly provides number of items in the array.
diff --git a/src/parser_yang.c b/src/parser_yang.c
index 3643e56..8c907e5 100644
--- a/src/parser_yang.c
+++ b/src/parser_yang.c
@@ -1036,7 +1036,7 @@
struct lysp_ext_instance *e;
enum yang_keyword kw;
- LYSP_ARRAY_NEW_RET(ctx->ctx, exts, e, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *exts, e, LY_EMEM);
/* store name and insubstmt info */
e->name = lydict_insert(ctx->ctx, ext_name, ext_name_len);
@@ -1299,7 +1299,7 @@
enum yang_keyword kw;
struct lysp_include *inc;
- LYSP_ARRAY_NEW_RET(ctx->ctx, includes, inc, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *includes, inc, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -1351,7 +1351,7 @@
enum yang_keyword kw;
struct lysp_import *imp;
- LYSP_ARRAY_NEW_RET(ctx->ctx, &module->imports, imp, LY_EVALID);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, module->imports, imp, LY_EVALID);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -1413,7 +1413,7 @@
enum yang_keyword kw;
struct lysp_revision *rev;
- LYSP_ARRAY_NEW_RET(ctx->ctx, revs, rev, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *revs, rev, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -1681,7 +1681,7 @@
{
struct lysp_restr *restr;
- LYSP_ARRAY_NEW_RET(ctx->ctx, restrs, restr, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *restrs, restr, LY_EMEM);
return parse_restr(ctx, data, restr_kw, restr);
}
@@ -1982,7 +1982,7 @@
enum yang_keyword kw;
struct lysp_type_enum *enm;
- LYSP_ARRAY_NEW_RET(ctx->ctx, enums, enm, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *enums, enm, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2228,7 +2228,7 @@
enum yang_keyword kw;
struct lysp_restr *restr;
- LYSP_ARRAY_NEW_RET(ctx->ctx, patterns, restr, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *patterns, restr, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2354,7 +2354,7 @@
break;
case YANG_TYPE:
{
- LYSP_ARRAY_NEW_RET(ctx->ctx, &type->types, nest_type, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, type->types, nest_type, LY_EMEM);
}
ret = parse_type(ctx, data, nest_type);
break;
@@ -2787,7 +2787,7 @@
enum yang_keyword kw;
struct lysp_refine *rf;
- LYSP_ARRAY_NEW_RET(ctx->ctx, refines, rf, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *refines, rf, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -2860,7 +2860,7 @@
enum yang_keyword kw;
struct lysp_tpdf *tpdf;
- LYSP_ARRAY_NEW_RET(ctx->ctx, typedefs, tpdf, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *typedefs, tpdf, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3007,7 +3007,7 @@
enum yang_keyword kw;
struct lysp_action *act;
- LYSP_ARRAY_NEW_RET(ctx->ctx, actions, act, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *actions, act, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3076,7 +3076,7 @@
enum yang_keyword kw;
struct lysp_notif *notif;
- LYSP_ARRAY_NEW_RET(ctx->ctx, notifs, notif, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *notifs, notif, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3164,7 +3164,7 @@
enum yang_keyword kw;
struct lysp_grp *grp;
- LYSP_ARRAY_NEW_RET(ctx->ctx, groupings, grp, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *groupings, grp, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -3253,7 +3253,7 @@
enum yang_keyword kw;
struct lysp_augment *aug;
- LYSP_ARRAY_NEW_RET(ctx->ctx, augments, aug, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *augments, aug, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -3974,7 +3974,7 @@
enum yang_keyword kw;
struct lysp_ext *ex;
- LYSP_ARRAY_NEW_RET(ctx->ctx, extensions, ex, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *extensions, ex, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -4249,7 +4249,7 @@
enum yang_keyword kw;
struct lysp_deviation *dev;
- LYSP_ARRAY_NEW_RET(ctx->ctx, deviations, dev, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *deviations, dev, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_STR_ARG, &word, &buf, &word_len);
@@ -4307,7 +4307,7 @@
enum yang_keyword kw;
struct lysp_feature *feat;
- LYSP_ARRAY_NEW_RET(ctx->ctx, features, feat, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *features, feat, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);
@@ -4362,7 +4362,7 @@
enum yang_keyword kw;
struct lysp_ident *ident;
- LYSP_ARRAY_NEW_RET(ctx->ctx, identities, ident, LY_EMEM);
+ LYSP_ARRAY_NEW_RET(ctx->ctx, *identities, ident, LY_EMEM);
/* get value */
ret = get_argument(ctx, data, Y_IDENTIF_ARG, &word, &buf, &word_len);