summaryrefslogtreecommitdiff
path: root/src/parser/parser_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/parser_utils.c')
-rw-r--r--src/parser/parser_utils.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/parser/parser_utils.c b/src/parser/parser_utils.c
index 96b0c17..496db9e 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);
}