From 4429bd0990f96448ef3fb1dc5bb36e8c2e024da8 Mon Sep 17 00:00:00 2001 From: Nunuhara Cabbage Date: Fri, 14 Feb 2020 22:16:20 -0800 Subject: [PATCH] Fix NEW instruction args in ain v8 and below NEW was changed in ain v11 to accept 2 arguments. --- src/ain.c | 1 + src/instructions.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ain.c b/src/ain.c index 6d41191..968a231 100644 --- a/src/ain.c +++ b/src/ain.c @@ -711,6 +711,7 @@ static bool read_tag(struct ain_reader *r, struct ain *ain) ain->version = read_int32(r); if (ain->version >= 11) { instructions[CALLHLL].nr_args = 3; + instructions[NEW].nr_args = 2; instructions[S_MOD].nr_args = 1; instructions[OBJSWAP].nr_args = 1; instructions[DG_STR_TO_METHOD].nr_args = 1; diff --git a/src/instructions.c b/src/instructions.c index 6890163..98fa476 100644 --- a/src/instructions.c +++ b/src/instructions.c @@ -230,7 +230,7 @@ struct instruction instructions[NR_OPCODES] = { OP ( S_GTE, 0 ), OP ( S_LENGTH2, 0 ), TODO ( S_LENGTHBYTE2, 0 ), - TODO ( NEW, 2, T_STRUCT, T_INT ), // FIXME: 2nd arg is T_FUNC *OR* -1 + TODO ( NEW, 0, T_STRUCT, T_INT ), // FIXME: 2nd arg is T_FUNC *OR* -1 OP ( DELETE, 0 ), TODO ( CHECKUDO, 0 ), OP ( A_REF, 0 ),