return code_end(toappend);
}
+code_t*code_dup(code_t*c)
+{
+ if(!c) return 0;
+
+ while(c->prev) c = c->prev;
+
+ code_t*last = 0;
+ while(c) {
+ NEW(code_t, n);
+ memcpy(n, c, sizeof(code_t));
+ n->prev = last;
+ if(last) {
+ last->next = n;
+ }
+ last = n;
+ c = c->next;
+ }
+ return last;
+}
+
code_t*code_cutlast(code_t*c)
{
assert(!c->next);
int len;
};
+code_t*code_dup(code_t*c); //shallow copy
+
code_t*add_opcode(code_t*atag, U8 op);
code_t*code_parse(TAG*tag, int len, abc_file_t*file, pool_t*pool, codelookup_t**codelookup);