class Android::Dex::DexObject::CodeItem

code_item @see source.android.com/devices/tech/dalvik/dex-format.html @!attribute [r] debug_info_item

@return [DebugInfoItem] debug_info_item of this code

Public Instance Methods

debug_info_item() click to toggle source
# File lib/android/dex/dex_object.rb, line 392
def debug_info_item
  unless @params[:debug_info_off] == 0
    @debug_info_item ||= DebugInfoItem.new(@data, @params[:debug_info_off])
  else
    nil
  end
end

Private Instance Methods

parse() click to toggle source
# File lib/android/dex/dex_object.rb, line 401
def parse
  @params[:registers_size] = read_value(:ushort)
  @params[:ins_size] = read_value(:ushort)
  @params[:outs_size] = read_value(:ushort)
  @params[:tries_size] = read_value(:ushort)
  @params[:debug_info_off] = read_value(:uint)
  @params[:insns_size] = read_value(:uint) # size of the instructions list
  @params[:insns] = read_value_array(:ushort, @params[:insns_size])
  read_value(:ushort) if ((@params[:insns_size] % 2) == 1) # for four-byte aligned
  if @params[:tries_size] > 0
    # This element is only present if tries_size is non-zero.
    @params[:tries] = read_class_array(TryItem, @params[:tries_size])
    # This element is only present if tries_size is non-zero.
    @params[:handlers] = EncodedCatchHandlerList.new(@data, @offset + @parsing_off)
    @parsing_off += @params[:handlers].size
  end
end