From: Masao M. <mu...@hi...> - 2007-07-15 15:18:07
|
むとうです。 On Sun, 15 Jul 2007 23:49:05 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > > これなのですが、rbgobj_abstract_but_create_instance_class は廃止して、 > > > とりあえず常に allocate 出来るようにしようかと思います。 > > > > > > というのも、rbgobj_abstract_but_create_instance_class で指定する方式だ > > > と、gtk側の実装(≠仕様)が変わるたびに対応が必要になってしまうためです。 > > > > それって、AbstractなクラスであってもFoo.newができる、ということでしょうか。 > > だとしたら現状のまま(Abstractなクラスはnewできない)の方が良いような気がします。 > > そうです。 > ただ、Abstractなクラスに対しては Foo#initialize を自動的に定義して、 > そっちでエラーにするということは出来るでしょうけど。 エラーにしないとSegfaultとかおかしな動作になりません? > > gtk側の実装が変わるたびに従わなければいけない、というのはしょうが > > ないといえばしょうがないわけですし。 > > それを仕方がないと言ってしまうのには、かなり抵抗があります。 > > gtk側の「仕様」が変更されたのなら仕方がないですが、内部の実装が変わった > くらいで正しく動作しなくなったり、変更が必要になったりというのでは、と > ても dependable なソフトウェアとは言えないのではないでしょうか? この場合、G_TYPE_FLAG_ABSTRACTでなかったものがそのように変更された というGTK側の仕様が変更されたのではないでしょうか。 決して内部の実装が変わっただけの話ではないのでは? まぁ、でも、仕様変更か内部の実装かという話はともかく 例えば、前のバージョンではBoxedなオブジェクトとして定義されていなかったけど 今回のバージョンではBoxedで定義され直したりってのも結構あったりして、 それらはバージョンによって変更が必要になっています。 それらに対応するのは仕方がないのではないでしょうか。 #それに私にとってRuby-GNOME2がdependableなソフトウェアである必要があるか、 #といわれると別にどっちでもよいです。ってかdependableなソフトの定義も #しりませんし(苦笑)。 今回のケースでは、Abstractなクラスをnewして変な結果が返らないように エラーになるのであれば内部の実装は酒井さんの案の方が良いと思います。 -- .:% Masao Mutoh<mu...@hi...> |