Fix CPU/GPU usage in file dialog and crash with single-commit repos #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes two bugs:
Bug 1: 100% CPU/GPU usage in file dialog view
Event::Updatewhen showing the file dialog, causingnext_repo_refreshto never update after expiration. This resulted inpoll()returning immediately with zero timeout, creating a busy loop.if let Event::Inputtomatchstatements that handle bothEvent::InputandEvent::Update, updating the refresh timer in both branches.Bug 2: Crash with single-commit repositories
len() - 1which causes unsigned integer underflow when length is 0 (wraps tousize::MAX). This caused invalid comparisons and out-of-bounds index access.indicesin graph_view render functionlen() - 1tolen().saturating_sub(1)throughout.get(idx).copied()instead of direct indexingTesting
cargo fmt --all -- --checkpassescargo clippy --all --all-targets -- --deny warningspassescargo test --allpasses