X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/2cec70b9f139dd207022c35fdbe8b49fd1cf230d..bb88b0fc9e1f8ff9f2f5e672078a81d13288e0d5:/src/state.c?ds=sidebyside diff --git a/src/state.c b/src/state.c index ed4a5082..b8c647e8 100644 --- a/src/state.c +++ b/src/state.c @@ -61,6 +61,22 @@ errs * errs_dup (errs *src) { errs *res = errs_new (src->nerrs); - memcpy (res->errs, src->errs, src->nerrs); + memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0])); + return res; +} + +/*-------------------------------------. +| Create a new array of N reductions. | +`-------------------------------------*/ + +#define REDUCTIONS_ALLOC(Nreductions) \ + (reductions *) xcalloc ((unsigned) (sizeof (reductions) \ + + (Nreductions - 1) * sizeof (short)), 1) + +reductions * +reductions_new (int n) +{ + reductions *res = REDUCTIONS_ALLOC (n); + res->nreds = n; return res; }