diff --git a/lang/main.c b/lang/main.c index cfff5bc..30afff6 100644 --- a/lang/main.c +++ b/lang/main.c @@ -8,9 +8,9 @@ static void test_number(void) { struct object *numA = number_create(5); struct object *numB = number_create(3); - struct object *args[] = {numB}; + struct object *args[] = {numB, NULL}; dispatch_call(numA, "Add", 1, &args[0]); - struct object *numC = args[0]; + struct object *numC = args[1]; printf("numC value is %i\n", number_value(numC)); printf("numA is %p\n", (void *)numA); printf("numB is %p\n", (void *)numB); diff --git a/lang/number.c b/lang/number.c index 2bce2de..b1ba118 100644 --- a/lang/number.c +++ b/lang/number.c @@ -46,7 +46,7 @@ struct number *numA = (struct number *)obj; struct number *numB = (struct number *)args[0]; int added = numA->value + numB->value; - args[0] = number_create(added); + args[1] = number_create(added); } static struct object_call calls[] = {