@@ -3,6 +3,7 @@ use std::sync::atomic::Ordering;
3
3
4
4
use super :: { add_deref_to_span, apply_val_color, ORANGE , PURPLE , RED } ;
5
5
6
+ use log:: debug;
6
7
use ratatui:: prelude:: Stylize ;
7
8
use ratatui:: text:: { Line , Span , Text } ;
8
9
use ratatui:: widgets:: { Block , Borders , Paragraph } ;
@@ -29,9 +30,18 @@ pub fn draw_registers(app: &App, f: &mut Frame, register: Rect) {
29
30
// TODO: cache this
30
31
let reg_changed_lock = app. register_changed . lock ( ) . unwrap ( ) ;
31
32
let filepath_lock = app. filepath . lock ( ) . unwrap ( ) ;
32
- for RegisterStorage { name, register : _, deref : _ } in regs. iter ( ) {
33
- if longest_register_name < name. len ( ) {
34
- longest_register_name = name. len ( ) ;
33
+ for RegisterStorage { name, register, deref : _ } in regs. iter ( ) {
34
+ if let Some ( reg) = register {
35
+ if !reg. is_set ( ) {
36
+ continue ;
37
+ }
38
+ if let Some ( reg_value) = & reg. value {
39
+ if let Ok ( _) = u64:: from_str_radix ( & reg_value[ 2 ..] , 16 ) {
40
+ if longest_register_name < name. len ( ) {
41
+ longest_register_name = name. len ( ) ;
42
+ }
43
+ }
44
+ }
35
45
}
36
46
}
37
47
let width: usize = if app. thirty_two_bit . load ( Ordering :: Relaxed ) { 11 } else { 19 } ;
@@ -47,11 +57,9 @@ pub fn draw_registers(app: &App, f: &mut Frame, register: Rect) {
47
57
if let Some ( reg_value) = & reg. value {
48
58
if let Ok ( val) = u64:: from_str_radix ( & reg_value[ 2 ..] , 16 ) {
49
59
let changed = reg_changed_lock. contains ( & ( i as u8 ) ) ;
50
- let mut reg_name = Span :: from ( format ! (
51
- " {name:width$}" ,
52
- width = longest_register_name - 2
53
- ) )
54
- . style ( Style :: new ( ) . fg ( PURPLE ) ) ;
60
+ let mut reg_name =
61
+ Span :: from ( format ! ( " {name:width$}" , width = longest_register_name) )
62
+ . style ( Style :: new ( ) . fg ( PURPLE ) ) ;
55
63
let ( is_stack, is_heap, is_text) = app. classify_val ( val, & filepath) ;
56
64
57
65
let mut extra_derefs = Vec :: new ( ) ;
0 commit comments