diff --git a/src/mainloop.cpp b/src/mainloop.cpp index f2a4533..a44718f 100644 --- a/src/mainloop.cpp +++ b/src/mainloop.cpp @@ -2,17 +2,17 @@ internal b8 init_imgui(GLFWwindow* window) { IMGUI_CHECKVERSION(); ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); (void) io; + ImGuiIO& io = ImGui::GetIO(); io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; io.IniFilename = nullptr; io.LogFilename = nullptr; ImGui::StyleColorsDark(); - ImGui_ImplGlfw_InitForOpenGL(window, true); - ImGui_ImplOpenGL3_Init("#version 330"); + b8 ok = ImGui_ImplGlfw_InitForOpenGL(window, true); + ok = ok && ImGui_ImplOpenGL3_Init("#version 330"); - return true; + return ok; } internal @@ -152,27 +152,26 @@ void run_main_loop(GLFWwindow *window, Arena *arena, App_State &app) ImGui_ImplGlfw_NewFrame(); ImGui::NewFrame(); - // Check if the inspected file changed - { - if (file_has_changed(app.inspected_file.inot)) { - u64 prev_size = app.inspected_file.size; - app.inspected_file.size = file_size(app.inspected_file.stream); - int fd = fileno(app.inspected_file.stream); - os_remap_file(fd, app.inspected_file.mem, prev_size, app.inspected_file.size); - // reset memory for loaded file data - arena_pop_to(app.fdata.arena, 0); - memset(&app.fdata.rndata, 0, sizeof(app.fdata.rndata)); - memset(&app.fdata.tfile_data, 0, sizeof(app.fdata.tfile_data)); - b8 success = get_tfile_data(app.fdata.arena, app.inspected_file, app.walk_tkeys_flags, app.ntpl_name, app.fdata.tfile_data); - if (success) - app.fdata.rndata = get_rntuple_data(app.fdata.arena, app.inspected_file, app.fdata.tfile_data, app.extended_info); - compute_tot_sections_size(app.fdata.tfile_data.sections); - init_viewer_title(app.viewer, app.fdata, app.inspected_file.name); - } + // Check if the inspected file changed: if it did, reload the data. + if (file_has_changed(app.inspected_file.inot)) { + u64 prev_size = app.inspected_file.size; + app.inspected_file.size = file_size(app.inspected_file.stream); + int fd = fileno(app.inspected_file.stream); + os_remap_file(fd, app.inspected_file.mem, prev_size, app.inspected_file.size); + + // reset memory for loaded file data + arena_pop_to(app.fdata.arena, 0); + memset(&app.fdata.rndata, 0, sizeof(app.fdata.rndata)); + memset(&app.fdata.tfile_data, 0, sizeof(app.fdata.tfile_data)); + b8 success = get_tfile_data(app.fdata.arena, app.inspected_file, app.walk_tkeys_flags, app.ntpl_name, app.fdata.tfile_data); + if (success) + app.fdata.rndata = get_rntuple_data(app.fdata.arena, app.inspected_file, app.fdata.tfile_data, app.extended_info); + compute_tot_sections_size(app.fdata.tfile_data.sections); + init_viewer_title(app.viewer, app.fdata, app.inspected_file.name); } if ((app.user_input.key_state[KEY_ESC] & KEY_STATE_IS_DOWN) || glfwWindowShouldClose(window)) { - app.should_quit = true; + app.should_quit = true; // superfluous right now, but set it just in case. break; }