From a8096d9b70ca645bdcd0177b894cc65005aae9a8 Mon Sep 17 00:00:00 2001 From: Patrick Lipka Date: Thu, 7 Aug 2025 18:21:12 +0200 Subject: [PATCH] add rvprof_finalize --- src/rvprof_core.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/rvprof_core.c b/src/rvprof_core.c index 6e407d5..1f05cb5 100644 --- a/src/rvprof_core.c +++ b/src/rvprof_core.c @@ -180,3 +180,31 @@ void rvprof_region_end(const char* name){ g_rvprof.stack_ptr--; } +void rvprof_finalize(void){ + if (!g_rvprof.initialized) return; + + rvprof_output_generate_report(); + if(g_rvprof.output_file){ + fclose(g_rvprof.output_file); + g_rvprof.output_file = NULL; + } + + region_array_cleanup(&g_rvprof.regions); + function_stats_array_cleanup(&g_rvprof.functions); + stack_info_array_cleanup(&g_rvprof.stacks); + symbol_array_cleanup(&g_rvprof.symbols); + + if (g_rvprof.config.output_filename) { + rvprof_free(g_rvprof.config.output_filename, strlen(g_rvprof.config.output_filename) + 1); + g_rvprof.config.output_filename = NULL; + } + + if (g_rvprof.config.program_name) { + rvprof_free(g_rvprof.config.program_name, strlen(g_rvprof.config.program_name) + 1); + g_rvprof.config.program_name = NULL; + } + + g_rvprof.initialized = 0; + g_rvprof.auto_initialized = 0; +} +