diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-09-02 19:23:35 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-09-02 19:23:35 -0400 |
| commit | a4454df4b93e2e2d071fe9e364318e3615fd7a98 (patch) | |
| tree | d20fb9ce312bf278bc5f043322e0a52b5da006a6 /builtins | |
| parent | b0a8404bd7068c02f274978263fec00b8538d814 (diff) | |
Bugfix int parsing
Diffstat (limited to 'builtins')
| -rw-r--r-- | builtins/text.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/builtins/text.c b/builtins/text.c index 800c5558..32e9609b 100644 --- a/builtins/text.c +++ b/builtins/text.c @@ -442,10 +442,16 @@ static void u8_buf_append(Text_t text, char **buf, size_t *capacity, int64_t *i) public const char *Text$as_c_string(Text_t text) { - size_t capacity = text.length; + size_t capacity = text.length + 1; char *buf = GC_MALLOC_ATOMIC(capacity); int64_t i = 0; u8_buf_append(text, &buf, &capacity, &i); + + if (i + 1 > (int64_t)capacity) { + capacity = i + 1; + buf = GC_REALLOC(buf, capacity); + } + buf[i] = '\0'; return buf; } |
