def each_macho(options = {})
      strict = options.fetch(:strict, true)
      errors = []

      machos.each_with_index do |macho, index|
        begin
          yield macho
        rescue RecoverableModificationError => e
          e.macho_slice = index

          # Strict mode: Immediately re-raise. Otherwise: Retain, check later.
          raise e if strict

          errors << e
        end
      end

      # Non-strict mode: Raise first error if *all* Mach-O slices failed.
      raise errors.first if errors.size == machos.size
    end
def each_macho(options = {})
      strict = options.fetch(:strict, true)
      errors = []

      machos.each_with_index do |macho, index|
        begin
          yield macho
        rescue RecoverableModificationError => e
          e.macho_slice = index

          # Strict mode: Immediately re-raise. Otherwise: Retain, check later.
          raise e if strict

          errors << e
        end
      end

      # Non-strict mode: Raise first error if *all* Mach-O slices failed.
      raise errors.first if errors.size == machos.size
    end
Yield each Mach-O object in the file, rescuing and accumulating errors.
 @param options [Hash]
 @option options [Boolean] :strict (true) whether or not to fail loudly
  with an exception if at least one Mach-O raises an exception. If false,
  only raises an exception if *all* Mach-Os raise exceptions.
 @raise [RecoverableModificationError] under the conditions of
  the `:strict` option above.
 @api private