From 6bbbef235c09de1bfb458dfdb362d99efecdf5e1 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Wed, 4 Nov 2015 12:20:44 +0200 Subject: [PATCH] show labels correctly --- lib/views/ref_view.rb | 12 ++++++++++-- lib/views/registers_view.rb | 13 ++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/views/ref_view.rb b/lib/views/ref_view.rb index 4a2d7d3..8228768 100644 --- a/lib/views/ref_view.rb +++ b/lib/views/ref_view.rb @@ -24,20 +24,26 @@ class RefView < ListView def ref_text "#{@name} : #{marker(@value)}" end - + def add_hover return if is_string? @element.on("hover"){ hover } if is_object?(@value) end def is_object?( ) - Register.machine.objects[@value] != nil + has = Register.machine.objects[@value] + return false unless has + ! is_label? end def is_string?() Register.machine.objects[@value].is_a? String end + def is_label? + Register.machine.objects[@value].is_a?(Register::Label) + end + def is_nil?() Register.machine.objects[@value].nil? end @@ -55,6 +61,8 @@ class RefView < ListView var = Register.machine.objects[id] str = var.class.name.split("::").last[0,2] str + " : #{id.to_s}" + elsif is_label? + str = "Label" else str = @value.to_s end diff --git a/lib/views/registers_view.rb b/lib/views/registers_view.rb index 4f9520f..821e523 100644 --- a/lib/views/registers_view.rb +++ b/lib/views/registers_view.rb @@ -24,8 +24,13 @@ class RegistersView < ListView def register_changed reg , old , value reg = reg.symbol unless reg.is_a? Symbol index = reg.to_s[1 .. -1 ].to_i - if( is_object? value ) - swap = ObjectView.new( value , @interpreter , 16 - index ) + has = Register.machine.objects[value] + if( has ) + if has.is_a?(Register::Label) + swap = ValueView.new "Label: #{has.name}" + else + swap = ObjectView.new( value , @interpreter , 16 - index ) + end else swap = ValueView.new value end @@ -34,7 +39,9 @@ class RegistersView < ListView end def is_object?( id ) - Register.machine.objects[id] != nil + has = Register.machine.objects[id] + return false unless has + has.is_a?(Register::Label) ? false : true end end