[Ruby 1.9-Bug#4417][Open] OpenSSL::Buffering#each byte がブロックに文字をStringで渡している

Bug #4417: OpenSSL::Buffering#each_byte がブロックに文字をStringで渡している
http://redmine.ruby-lang.org/issues/show/4417

起票者: Ippei Obayashi
ステータス: Open, 優先度: Normal
カテゴリ: ext, Target version: 1.9.2
ruby -v: ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

現状では Ruby 1.9.x では OpenSSL::Buffering#each_byte は、渡されたブロックに String
オブジェクトを
(1文字づつ)渡しています。

しかし IO#each_byte などからの類推としてこれは Integer を渡すべきではないでしょうか。

チケット #4417 が更新されました。 (by Yui NARUSE)

ステータス OpenからAssignedに変更
担当者 Hiroshi NAKAMURAにセット

たしかに。
以下のような感じですかね。

— a/ext/openssl/lib/openssl/buffering.rb
+++ b/ext/openssl/lib/openssl/buffering.rb
@@ -197,8 +197,8 @@ module Buffering
end

def each_byte

  • while c = getc
  •  yield(c)
    
  • while c = read(1)
  •  yield(c.ord)
    
    end
    end