From: Yoshinori Sano Date: 2007-02-01T11:24:55+09:00 Subject: [ruby-dev:30232] [patch] rb_type(): シンボル型に対する型判定が怪しい さの よしのり です。 tool/compile.rbでRubyプログラムの難読化を試そうとしていて、バグを発見しました。 ruby.hで定義されているrb_type()が、シンボル型に対して、型判定がうまくできて いないようです。 一応、このパッチを適用すると、tool/compile.rbで難読化したRubyプログラムが 動作するようになります。 詳細はブログに書いておきました。 http://d.hatena.ne.jp/ysano2005/20070131/1170264883 よろしくお願いいたします。 Index: ChangeLog =================================================================== --- ChangeLog (revision 11607) +++ ChangeLog (working copy) @@ -1,3 +1,7 @@ +Thu Feb 1 11:00:00 2007 Yoshinori Sano + + * ruby.h (rb_type): should handle T_SYMBOL properly. + Wed Jan 31 14:52:09 2007 Yukihiro Matsumoto * test/ruby/test_iterator.rb (TestIterator::test_block_given_within_iterator): Index: ruby.h =================================================================== --- ruby.h (revision 11607) +++ ruby.h (working copy) @@ -771,6 +771,8 @@ else if (!RTEST(obj)) { if (obj == Qnil) return T_NIL; if (obj == Qfalse) return T_FALSE; + } else { + if (SYMBOL_P(obj)) return T_SYMBOL; } return BUILTIN_TYPE(obj); } -- Yoshinori Sano