From 3fd348e6c168c569f35eb871c7227ab638e18d96 Mon Sep 17 00:00:00 2001 From: Evan Shaw Date: Thu, 8 Jan 2015 09:53:32 +1300 Subject: [PATCH] Store string length Strings are still null-terminated so that they can be treated as C strings. --- src/wren_value.c | 1 + src/wren_value.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/wren_value.c b/src/wren_value.c index 5782e94a..a8519dfe 100644 --- a/src/wren_value.c +++ b/src/wren_value.c @@ -341,6 +341,7 @@ Value wrenNewUninitializedString(WrenVM* vm, size_t length) { ObjString* string = allocate(vm, sizeof(ObjString) + length + 1); initObj(vm, &string->obj, OBJ_STRING, vm->stringClass); + string->length = length; return OBJ_VAL(string); } diff --git a/src/wren_value.h b/src/wren_value.h index 0f5279d4..ca5f3b6b 100644 --- a/src/wren_value.h +++ b/src/wren_value.h @@ -108,6 +108,7 @@ DECLARE_BUFFER(Value, Value); typedef struct { Obj obj; + size_t length; // not including null terminator char value[]; } ObjString;