From f247d3c52db545f72eb140ce1a0b681b2a650d2d Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Sat, 11 Jul 2026 06:23:05 -0700 Subject: [PATCH] fix chunk-up/down --- src/raddbg/raddbg_views.c | 8 ++++++-- src/text/text.c | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index 73e0bb40..cf0ca59a 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -197,7 +197,8 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla //- rjf: movement down (chunk) if(need_nav && evt->delta_unit == UI_EventDeltaUnit_Word && delta.y > 0 && line_num+1 <= line_count) { - for(U64 scan_line_num = line_num+1; scan_line_num <= line_count; scan_line_num += 1) + B32 done = 0; + for(U64 scan_line_num = line_num+1; !done && scan_line_num <= line_count; scan_line_num += 1) { Temp scratch = scratch_begin(&arena, 1); Rng1U64 line_range = txt_range_from_line_num(&text_patched.line_map, scan_line_num); @@ -206,6 +207,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla if(line_without_whitespace.size == 0) { *cursor = line_range.min + (U64)(line_without_whitespace.str - line.str); + done = 1; } else if(scan_line_num == line_count) { @@ -218,7 +220,8 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla //- rjf: movement up (chunk) if(need_nav && evt->delta_unit == UI_EventDeltaUnit_Word && delta.y < 0 && line_num > 1) { - for(U64 scan_line_num = line_num-1; scan_line_num > 0; scan_line_num -= 1) + B32 done = 0; + for(U64 scan_line_num = line_num-1; !done && scan_line_num > 0; scan_line_num -= 1) { Temp scratch = scratch_begin(&arena, 1); Rng1U64 line_range = txt_range_from_line_num(&text_patched.line_map, scan_line_num); @@ -227,6 +230,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla if(line_without_whitespace.size == 0) { *cursor = line_range.min + (U64)(line_without_whitespace.str - line.str); + done = 1; } else if(scan_line_num == 1) { diff --git a/src/text/text.c b/src/text/text.c index db426306..7669194a 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -3088,6 +3088,7 @@ txt_artifact_create(String8 key, B32 *cancel_signal, AC_Status *status_out, U64 } U64 line_size = dim_1u64(line_range); shared->info.lines_ranges[lane_line_base_idxs[lane_idx()] + lane_line_idx] = line_range; + // TODO(rjf): this is a race: shared->info.lines_max_size = Max(shared->info.lines_max_size, line_size); lane_line_idx += 1; line_start_idx = idx+1;