diff options
Diffstat (limited to 'src/parser/parser_utils.c')
| -rw-r--r-- | src/parser/parser_utils.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parser/parser_utils.c b/src/parser/parser_utils.c index 05ea74a..a090298 100644 --- a/src/parser/parser_utils.c +++ b/src/parser/parser_utils.c @@ -2108,10 +2108,15 @@ char *process_fstring(ParserContext *ctx, const char *content, char ***used_syms // Codegen expression to temporary buffer char *code_buffer = NULL; size_t code_len = 0; - FILE *mem_stream = open_memstream(&code_buffer, &code_len); + FILE *mem_stream = tmpfile(); if (mem_stream) { codegen_expression(ctx, expr_node, mem_stream); + code_len = ftell(mem_stream); + code_buffer = xmalloc(code_len + 1); + fseek(mem_stream, 0, SEEK_SET); + fread(code_buffer, 1, code_len, mem_stream); + code_buffer[code_len] = 0; fclose(mem_stream); } |
