From 562f91e875e870eb9f2948dd4de607441f5a6be9 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 15 Oct 2017 21:06:04 -0400 Subject: [PATCH] clean up some resources --- src/codegen.cpp | 4 ++++ src/codegen.hpp | 1 + src/link.cpp | 2 ++ src/main.cpp | 1 + src/zig_llvm.cpp | 3 ++- 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/codegen.cpp b/src/codegen.cpp index 5168a55fabd59f518466e3c917d61e2444954186..e119b714a8772d0b6a368f51d00fe75577e05471 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -152,6 +152,10 @@ CodeGen *codegen_create(Buf *root_src_path, const ZigTarget *target, OutType out return g; } +void codegen_destroy(CodeGen *codegen) { + LLVMDisposeTargetMachine(codegen->target_machine); +} + void codegen_set_output_h_path(CodeGen *g, Buf *h_path) { g->out_h_path = h_path; } diff --git a/src/codegen.hpp b/src/codegen.hpp index 824b82feb99b8cc324190582c01c4e0dcebfb81b..549891b107d45f333efe16cf9ecd897dc2d75a24 100644 --- a/src/codegen.hpp +++ b/src/codegen.hpp @@ -16,6 +16,7 @@ CodeGen *codegen_create(Buf *root_src_path, const ZigTarget *target, OutType out_type, BuildMode build_mode, Buf *zig_lib_dir); +void codegen_destroy(CodeGen *codegen); void codegen_set_clang_argv(CodeGen *codegen, const char **args, size_t len); void codegen_set_llvm_argv(CodeGen *codegen, const char **args, size_t len); diff --git a/src/link.cpp b/src/link.cpp index 35b350df0fcd611a30dbe96467f0b16e649e4a09..475e42fd7bcfc408da2c1f49c20f8c18895011ab 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -65,6 +65,8 @@ static Buf *build_o_raw(CodeGen *parent_gen, const char *oname, Buf *full_path) os_path_join(parent_gen->cache_dir, o_out_name, output_path); codegen_link(child_gen, buf_ptr(output_path)); + codegen_destroy(child_gen); + return output_path; } diff --git a/src/main.cpp b/src/main.cpp index 9cd185280df59fb1f7f75927e1a93c8ea61f1c03..6695ae42253aebd3e40ccf445e75b3ab00327624 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -421,6 +421,7 @@ int main(int argc, char **argv) { g->root_package->package_table.put(buf_create_from_str("@build"), build_pkg); codegen_build(g); codegen_link(g, buf_ptr(path_to_build_exe)); + codegen_destroy(g); Termination term; os_spawn_process(buf_ptr(path_to_build_exe), args, &term); diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp index 5d8b34de10205ac44e26164b602fe3a7ff483d7b..f82b1d5423a9f3452eaf6294d8e9bbb7a50c5f8e 100644 --- a/src/zig_llvm.cpp +++ b/src/zig_llvm.cpp @@ -165,7 +165,8 @@ bool ZigLLVMTargetMachineEmitToFile(LLVMTargetMachineRef targ_machine_ref, LLVMM MPM.run(*module); - dest.flush(); + dest.close(); + return false; } -- 2.54.0