致命的 #1168
完了multiselectでブロックなしoptionのみだとクラッシュする
0%
説明
以下のコードを実行すると落ちる。
Plugin.create(:sample_settings) do
multiselect('複数セレクト', :sample_settings_multiselect) do
option(:opt1, 'オプション1')
option(:opt2, 'オプション2')
option(:opt3, 'オプション3')
end
end
optionを以下のようなブロック付きに変更した場合は落ちない
option(:opt1, 'オプション1') do
select('なんか', :opt1_select, {})
end
source:/core/mui/gtk_form_dsl_multi_select.rb#L21 の @parent_klass
がnilになっているのが原因らしい。
なぜそうなってるかまでは追えていない。
ファイル
バックトレース
/Users/ahiru/mikutter/repo/app/core/mui/gtk_form_dsl_multi_select.rb:21:in `build': undefined method `create_inner_setting' for nil:NilClass (NoMethodError)
from /Users/ahiru/mikutter/repo/app/core/mui/gtk_form_dsl.rb:280:in `multiselect'
from /Users/ahiru/.mikutter/plugin/sample_settings/sample_settings.rb:42:in `block (3 levels) in <top (required)>'
from /Users/ahiru/mikutter/repo/app/core/mui/gtk_form_dsl.rb:188:in `instance_eval'
from /Users/ahiru/mikutter/repo/app/core/mui/gtk_form_dsl.rb:188:in `settings'
from /Users/ahiru/.mikutter/plugin/sample_settings/sample_settings.rb:19:in `block (2 levels) in <top (required)>'
from /Users/ahiru/mikutter/repo/app/core/plugin/settings/menu.rb:58:in `instance_eval'
from /Users/ahiru/mikutter/repo/app/core/plugin/settings/menu.rb:58:in `widget'
from /Users/ahiru/mikutter/repo/app/core/plugin/settings/settings.rb:37:in `block in setting_window'
from /Users/ahiru/mikutter/repo/app/core/mui/gtk_extension.rb:35:in `block in safety_signal_connect'
from /Users/ahiru/mikutter/repo/app/core/plugin/gtk/mainloop.rb:10:in `main'
from /Users/ahiru/mikutter/repo/app/core/plugin/gtk/mainloop.rb:10:in `mainloop'
from mikutter.rb:68:in `boot!'
from mikutter.rb:104:in `<main>'
再現手順
1. 添付したプラグインを入れる
2. mikutterを起動し、設定を開く
3. '複数セレクト' タブを開くと落ちる