lib/ffi/hiredis_vip/mget.rb in ffi-hiredis_vip-0.1.0.pre3 vs lib/ffi/hiredis_vip/mget.rb in ffi-hiredis_vip-0.1.0.pre4
- old
+ new
@@ -26,10 +26,12 @@
when :REDIS_REPLY_ARRAY
mget_results_to_array(reply)
else
[]
end
+ ensure
+ ::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
end
private
def mget_results_to_array(array_reply)
@@ -38,10 +40,10 @@
0.upto(array_reply[:elements] - 1) do |element_number|
result = ::FFI::HiredisVip::Core.redisReplyElement(array_reply, element_number)
case result[:type]
when :REDIS_REPLY_STRING
- mget_results << result[:str]
+ mget_results << result[:str].dup
when :REDIS_REPLY_NIL
mget_results << nil
end
end