# File lib/satyr.rb, line 84
    def initialize(json)
      error_msg = ::FFI::MemoryPointer.new(:pointer, 1)
      pointer = Satyr::FFI.sr_report_from_json_text json.to_s, error_msg
      error_msg = error_msg.read_pointer
      unless error_msg.null?
        message = error_msg.read_string.force_encoding('UTF-8')
        Satyr::FFI.free error_msg
        raise SatyrError, "Failed to parse JSON: #{message}"
      end

      # from_json_text should never return NULL without setting error_msg,
      # better err on the safe side though
      raise SatyrError, "Failed to create stacktrace" if pointer.null?

      @struct = Satyr::FFI::ReportStruct.new pointer
    end