aboutsummaryrefslogtreecommitdiffstats
path: root/clox/src/vm.c
diff options
context:
space:
mode:
authorGravatar Tom Willemse2022-08-12 19:58:10 -0700
committerGravatar Tom Willemse2022-08-12 19:58:10 -0700
commitad6a98f6ad3cce9d69648360d00d5dcd67d8ca0f (patch)
treeda76141ff43efe1fa5c725bb1624d3b8f6362d06 /clox/src/vm.c
parent38e4c37f0f991122530a708148a6ec0e2a5a3eff (diff)
downloadcrafting-interpreters-ad6a98f6ad3cce9d69648360d00d5dcd67d8ca0f.tar.gz
crafting-interpreters-ad6a98f6ad3cce9d69648360d00d5dcd67d8ca0f.zip
Chapter 26.7
Diffstat (limited to 'clox/src/vm.c')
-rw-r--r--clox/src/vm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/clox/src/vm.c b/clox/src/vm.c
index c9556b2..601b128 100644
--- a/clox/src/vm.c
+++ b/clox/src/vm.c
@@ -163,8 +163,8 @@ static bool isFalsey(Value value) {
}
static void concatenate() {
- ObjString *b = AS_STRING(pop());
- ObjString *a = AS_STRING(pop());
+ ObjString *b = AS_STRING(peek(0));
+ ObjString *a = AS_STRING(peek(1));
int length = a->length + b->length;
char *chars = ALLOCATE(char, length + 1);
@@ -173,6 +173,8 @@ static void concatenate() {
chars[length] = '\0';
ObjString *result = takeString(chars, length);
+ pop();
+ pop();
push(OBJ_VAL(result));
}