Class: MachO::LoadCommands::LoadCommand::LCStr
- Inherits:
-
Object
- Object
- MachO::LoadCommands::LoadCommand::LCStr
- Defined in:
- lib/macho/load_commands.rb
Overview
Represents a Load Command string. A rough analogue to the lc_str struct used internally by OS X. This class allows ruby-macho to pretend that strings stored in LCs are immediately available without explicit operations on the raw Mach-O data.
Instance Method Summary collapse
-
#initialize(lc, lc_str) ⇒ LCStr
constructor
private
A new instance of LCStr.
-
#to_h ⇒ Hash
A hash representation of this LCStr.
-
#to_i ⇒ Integer
The offset to the beginning of the string in the load command.
-
#to_s ⇒ String
A string representation of the LCStr.
Constructor Details
#initialize(lc, lc_str) ⇒ LCStr
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
devise a solution such that the lc_str
parameter is not
interpreted differently depending on lc.view
. The current behavior
is a hack to allow viewless load command creation.
Returns a new instance of LCStr.
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 |
# File 'lib/macho/load_commands.rb', line 323 def initialize(lc, lc_str) view = lc.view if view lc_str_abs = view.offset + lc_str lc_end = view.offset + lc.cmdsize - 1 raw_string = view.raw_data.slice(lc_str_abs..lc_end) @string, null_byte, _padding = raw_string.partition("\x00") raise LCStrMalformedError, lc if null_byte.empty? @string_offset = lc_str else @string = lc_str @string_offset = 0 end end |
Instance Method Details
#to_h ⇒ Hash
Returns a hash representation of this MachO::LoadCommands::LoadCommand::LCStr.
353 354 355 356 357 358 |
# File 'lib/macho/load_commands.rb', line 353 def to_h { "string" => to_s, "offset" => to_i, } end |
#to_i ⇒ Integer
Returns the offset to the beginning of the string in the load command.
348 349 350 |
# File 'lib/macho/load_commands.rb', line 348 def to_i @string_offset end |
#to_s ⇒ String
Returns a string representation of the LCStr.
342 343 344 |
# File 'lib/macho/load_commands.rb', line 342 def to_s @string end |