class Prism::Serialize::ConstantPool

def get(index, encoding)

def get(index, encoding)
  @pool[index] ||=
    begin
      offset = @base + index * 8
      start = @serialized.unpack1("L", offset: offset)
      length = @serialized.unpack1("L", offset: offset + 4)
      if start.nobits?(1 << 31)
        @input.byteslice(start, length).force_encoding(encoding).to_sym
      else
        @serialized.byteslice(start & ((1 << 31) - 1), length).force_encoding(encoding).to_sym
      end
    end
end