rubyx/lib/elf/string_table_section.rb

30 lines
461 B
Ruby
Raw Normal View History

module Elf
class StringTableSection < Section
def initialize(*args)
super
@string_data = "\x00"
@indices = {"" => 0}
end
def add_string(str)
return if @indices[str]
@indices[str] = @string_data.length
@string_data << str << "\x00"
end
def index_for(str)
@indices[str]
end
def write(io)
io << @string_data
end
def type
Elf::Constants::SHT_STRTAB
end
end
end