From 6de33ded81981554ccffc3ecbfcd5b0f628cf502 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 23 Apr 2017 13:22:36 -0400 Subject: make undefined as a constant value lazy closes #268 --- src/ast_render.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/ast_render.cpp') diff --git a/src/ast_render.cpp b/src/ast_render.cpp index 3e939c43e5..37fb067067 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -273,6 +273,7 @@ void ast_print(FILE *f, AstNode *node, int indent) { struct AstRender { + CodeGen *codegen; int indent; int indent_size; FILE *f; @@ -924,8 +925,9 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { } -void ast_render(FILE *f, AstNode *node, int indent_size) { +void ast_render(CodeGen *codegen, FILE *f, AstNode *node, int indent_size) { AstRender ar = {0}; + ar.codegen = codegen; ar.f = f; ar.indent_size = indent_size; ar.indent = 0; @@ -1030,15 +1032,16 @@ static void ast_render_tld_var(AstRender *ar, Buf *name, TldVar *tld_var) { } else { Buf buf = BUF_INIT; buf_resize(&buf, 0); - render_const_value(&buf, var->value); + render_const_value(ar->codegen, &buf, var->value); fprintf(ar->f, "%s", buf_ptr(&buf)); } fprintf(ar->f, ";\n"); } -void ast_render_decls(FILE *f, int indent_size, ImportTableEntry *import) { +void ast_render_decls(CodeGen *codegen, FILE *f, int indent_size, ImportTableEntry *import) { AstRender ar = {0}; + ar.codegen = codegen; ar.f = f; ar.indent_size = indent_size; ar.indent = 0; -- cgit v1.2.3