X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Falloc.c;h=ccd96913fbff18e8b8bbd2ee673086a9f692595f;hb=refs%2Fheads%2Fmaster;hp=356a038e9f8587311f17398029eefce1b3ffaaaa;hpb=081a7c4eedd6e6aa9da616ed88c82ab85efdb98f;p=muddle-interpreter.git diff --git a/src/alloc.c b/src/alloc.c index 356a038..ccd9691 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -42,6 +42,22 @@ POOL_OBJECT (pool_ptr p) return &pool[p]; } +pool_ptr +pool_copy_array (const pool_object * objs, uint32_t len) +{ + if (!len) + return 0; + pool_ptr p = pool_alloc (len); + for (int i = 0; i < len; i++) + { + pool[p + i] = (pool_object) + { + .type = objs[i].type,.rest = p + i + 1,.val = objs[i].val}; + } + pool[p + len - 1].rest = 0; + return p; +} + pool_ptr pool_copy_array_rev (const pool_object * objs, uint32_t len) {