Project

General

Profile

Feature #7047

Updated by ko1 (Koichi Sasada) almost 8 years ago


 nariです。 

 現在のCRubyではオブジェクトを割り当てる際に rb_newobj() という関数を利 
 用していますが、引数にtypeやklassがないため、たとえばT_STRINGだけ違うと 
 ころに割り当てるなどの特別な処理がやりづらくなっています。 

 そこで以下のC APIの追加を提案します。 

  * VALUE rb_newobj_with(VALUE, enum ruby_value_type); 
  * #define NEWOBJ_WITH(obj,type,klass,flags) 

 ruby内部でrb_newobj()を使っているところはrb_newobj_with()に置き換えたい 
 と考えています。互換性のためにrb_newobj・NEWOBJ・OBJSETUP自体は残します 
 が、将来的には消したいですね。ただ2.0では難しそうです。 

 パッチは以下のとおりです。 
 https://github.com/authorNari/ruby/compare/trunk...rb_newobj2.patch 

 また、rb_newobj_withという名前よりよい名前(rb_newobj2以外)があれば教 
 えてもらえると嬉しいです。 

Back