diff options
author | 2021-07-08 02:24:24 -0700 | |
---|---|---|
committer | 2021-07-08 02:25:13 -0700 | |
commit | 2c007a8f94d65dc40f638b284db7e374a58b632f (patch) | |
tree | 260a1460cdb86c913e785171a85447afc03efddf /clox/src/value.c | |
parent | a779473cede81f4d3b4eed6f6b4e4184d43ffa87 (diff) | |
download | crafting-interpreters-2c007a8f94d65dc40f638b284db7e374a58b632f.tar.gz crafting-interpreters-2c007a8f94d65dc40f638b284db7e374a58b632f.zip |
Chapter 14.1-6
Diffstat (limited to 'clox/src/value.c')
-rw-r--r-- | clox/src/value.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/clox/src/value.c b/clox/src/value.c new file mode 100644 index 0000000..9a27034 --- /dev/null +++ b/clox/src/value.c @@ -0,0 +1,30 @@ +#include <stdio.h> + +#include "memory.h" +#include "value.h" + +void initValueArray(ValueArray* array) { + array->values = NULL; + array->capacity = 0; + array->count = 0; +} + +void writeValueArray(ValueArray* array, Value value) { + if (array->capacity < array->count + 1) { + int oldCapacity = array->capacity; + array->capacity = GROW_CAPACITY(oldCapacity); + array->values = GROW_ARRAY(Value, array->values, oldCapacity, array->capacity); + } + + array->values[array->count] = value; + array->count++; +} + +void freeValueArray(ValueArray* array) { + FREE_ARRAY(Value, array->values, array->capacity); + initValueArray(array); +} + +void printValue(Value value) { + printf("%g", value); +} |