class WORF::DIE

Attributes

attributes[R]
children[R]
offset[R]
tag[R]

Public Class Methods

new(tag, offset, attributes, children) click to toggle source
# File lib/worf.rb, line 173
def initialize tag, offset, attributes, children
  @tag        = tag
  @offset     = offset
  @attributes = attributes
  @children   = children
end

Public Instance Methods

byte_size() click to toggle source
# File lib/worf.rb, line 201
def byte_size
  at Constants::DW_AT_byte_size
end
const_value() click to toggle source
# File lib/worf.rb, line 213
def const_value
  at Constants::DW_AT_const_value
end
data_member_location() click to toggle source
# File lib/worf.rb, line 197
def data_member_location
  at Constants::DW_AT_data_member_location
end
decl_file() click to toggle source
# File lib/worf.rb, line 209
def decl_file
  at Constants::DW_AT_decl_file
end
each() { |self| ... } click to toggle source
# File lib/worf.rb, line 231
def each &block
  yield self
  children.each { |child| child.each(&block) }
end
find_type(child) click to toggle source
# File lib/worf.rb, line 180
def find_type child
  raise ArgumentError, "DIE doesn't have a type" unless child.type
  children.bsearch { |c_die| child.type <=> c_die.offset }
end
high_pc() click to toggle source
# File lib/worf.rb, line 193
def high_pc
  at Constants::DW_AT_high_pc
end
location() click to toggle source
# File lib/worf.rb, line 185
def location
  at Constants::DW_AT_location
end
low_pc() click to toggle source
# File lib/worf.rb, line 189
def low_pc
  at Constants::DW_AT_low_pc
end
name(strings) click to toggle source
# File lib/worf.rb, line 217
def name strings
  tag.attribute_info(Constants::DW_AT_name) do |form, i|
    if form == Constants::DW_FORM_string
      attributes[i]
    else
      strings.string_at(attributes[i])
    end
  end
end
name_offset() click to toggle source
# File lib/worf.rb, line 227
def name_offset
  at Constants::DW_AT_name
end
type() click to toggle source
# File lib/worf.rb, line 205
def type
  at Constants::DW_AT_type
end

Private Instance Methods

at(name) click to toggle source
# File lib/worf.rb, line 238
def at name
  idx = tag.index_of(name)
  idx && attributes[idx]
end