summaryrefslogtreecommitdiff
path: root/src/parser/parser_utils.c
diff options
context:
space:
mode:
authorVitaly Takmazov <vitalyster@gmail.com>2026-01-24 05:53:02 +0300
committerVitaly Takmazov <vitalyster@gmail.com>2026-01-24 06:09:15 +0300
commitf3d2544b18fe8267edaba97474033782f7da3f40 (patch)
tree24f19dc3864cebfe8ff62c3e1fad3d6afe0be3ef /src/parser/parser_utils.c
parentf38a4868b6585a28e4dee23fd595cdc192dbde00 (diff)
open_memstream -> tmpfile
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 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);
}