From: Masahiro S. ()
<sa...@to...> - 2003-11-15 14:45:57
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] GLib::Flags#initialize Date: Mon, 27 Oct 2003 01:43:47 +0900 > むとうです。 > > On Sun, 26 Oct 2003 23:52:36 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > GFlagsで範囲外の値をどうするかという問題ですよね。 > > > > GEnumでも問題になりましたし、範囲外の値を扱うにしても、 > > 扱わないにしても、GFlagsとGEnumで同じ対応にした方が良さそうですね。 > > なるほど。確かに。 > > > とりあえず、glib-2.2.2の内部で範囲外の値をどう扱っているか調べてみると、 > > * g_value_set_enum/g_value_set_flags では一切チェックしない > > * g_param_value_validate ではチェックしている > > (そのためプロパティには範囲外の値をセットすることは出来ない) > > ようです。 > > 正直、どうすれば正しいか、と問われるとうーんとうなってしまいますが、 > 実装上の都合を考えるとGdk::Keymap#translate_keyboard_stateのような > メソッドを切り捨てるというのはつらいので「チェック無し」では > どうでしょうか。 > あるいは、チェック無しで変な値がある場合はそこだけIntegerで返す、とか。 とりあえずチェック無しにしてみました。 対処がこんなに遅くなってしまってすいません。 -- 酒井 政裕 / Masahiro Sakai |