From fd1ee1c2655397bb219673ff59c945c8d4f965e4 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Tue, 2 Jun 2026 14:41:43 -0700 Subject: [PATCH] radbin: absolutify relative external-file-paths (debug link, pdb-in-exe), to avoid clashing with working-directory files of the same name --- src/radbin/radbin.c | 16 ++++++++++++++-- src/raddbg/raddbg_core.c | 6 ++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 8ef2b2b1..58ce02ae 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -322,7 +322,13 @@ rb_thread_entry_point(void *p) if(n->v.path.size != 0) { log_infof("Found reference to separate debug info file in %S (%S) at %S\n", file_path, rb_file_format_display_name_table[file_format], n->v.path); - str8_list_push(arena, &input_file_path_tasks, n->v.path); + String8 ext_path_absolute = n->v.path; + PathStyle ext_path_style = path_style_from_str8(ext_path_absolute); + if(ext_path_style == PathStyle_Relative) + { + ext_path_absolute = path_absolute_dst_from_relative_dst_src(arena, ext_path_absolute, str8_chop_last_slash(input_file_path)); + } + str8_list_push(arena, &input_file_path_tasks, ext_path_absolute); } } scratch_end(scratch); @@ -340,7 +346,13 @@ rb_thread_entry_point(void *p) if(debug_link.path.size != 0) { log_infof("Found reference to separate debug info file in %S (%S) at %S\n", n->string, rb_file_format_display_name_table[file_format], debug_link.path); - str8_list_push(arena, &input_file_path_tasks, debug_link.path); + String8 ext_path_absolute = debug_link.path; + PathStyle ext_path_style = path_style_from_str8(ext_path_absolute); + if(ext_path_style == PathStyle_Relative) + { + ext_path_absolute = path_absolute_dst_from_relative_dst_src(arena, ext_path_absolute, str8_chop_last_slash(input_file_path)); + } + str8_list_push(arena, &input_file_path_tasks, ext_path_absolute); } scratch_end(scratch); } diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 3f537aab..80f4495a 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -6181,6 +6181,12 @@ rd_window_frame(void) { B32 build_hover_eval = (hover_eval_is_open && !rd_drag_is_active()); + // rjf: reset hover eval timer if it's "open" but we aren't going to build it + if(!build_hover_eval && hover_eval_is_open) + { + ws->hover_eval_firstt_us = rd_state->time_in_us; + } + // rjf: disable hover eval if hovered view is actively scrolling if(hover_eval_is_open) {