プロジェクト

全般

プロフィール

バグ #1229

特定のMessage Modelが表示される時クラッシュすることがある

toshi_a 初音6ヶ月前に追加. 6ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
プラグイン名:
ブランチ:
クラッシュする:
はい

説明

SystemMessageにiconメソッドが実装されていない。関係する場所を調べ、必要なところに実装する。

{{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:449:in `main_icon': undefined method `icon' for #<Mikutter::System::Message:0x0000558dd2888640> (NoMethodError)
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:493:in `block in render_main_icon_square'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:491:in `save'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:491:in `render_main_icon_square'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:486:in `render_main_icon'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:466:in `render_to_context'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:437:in `gen_pixmap'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:443:in `gen_pixbuf'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_miracle_painter.rb:126:in `pixbuf'
    from {{MIKUTTER_DIR}}/core/lib/uithreadonly.rb:22:in `block (2 levels) in singleton class'
    from {{MIKUTTER_DIR}}/core/mui/cairo_cell_renderer_message.rb:149:in `render_message'
    from {{MIKUTTER_DIR}}/core/mui/cairo_cell_renderer_message.rb:128:in `uri='
    from {{MIKUTTER_DIR}}/core/plugin/gtk/mainloop.rb:10:in `main'
    from {{MIKUTTER_DIR}}/core/plugin/gtk/mainloop.rb:10:in `mainloop'
    from {{MIKUTTER_DIR}}/mikutter.rb:68:in `boot!'
    from {{MIKUTTER_DIR}}/mikutter.rb:104:in `<main>'
system_message_icon.diff (274 Bytes) system_message_icon.diff Akira Ouchi, 2018-05-07 15:24

再現手順

  1. 手順A
    1. 一晩放置していた
  2. 手順B
    1. Twitterアカウントを登録する
    2. そのTwitterアカウントを登録するのに使ったCKが凍結されるのを待つ
    3. 検索タブで任意のワードで検索する

関連するチケット

関連している 機能 #1205: 返信時にGtk::PostBoxがIntelligentTextviewを付加するための要件を緩和してほしい終了2018-04-12

関連している バグ #1225: userメソッドを持たないMessageモデルを使うとmikutterがクラッシュする終了

関係しているリビジョン

リビジョン 2ee74d6c (差分)
toshi_a 初音6ヶ月前に追加

Message Modelに規定されていないiconメソッドを利用しない refs #1229

Message Modelにはuserメソッドは要求されるので、userの存在チェックは消した

履歴

#1 Akira Ouchi6ヶ月前に更新

ほかはまだ見てませんが、とりあえずSystemMessageにiconメソッドを実装するパッチをつくったので添付します。

#2 toshi_a 初音6ヶ月前に更新

  • 再現手順 を更新 (diff)

#3 toshi_a 初音6ヶ月前に更新

#1205#1225 では、Message Modelにuserメソッドがあるとも限らないと書いているが、実際にはuserメソッドはもともと必須とされている

一方でMessage#iconは規定がなく、User#iconは規定されているので、message.user.iconは必ず成功する前提で書き直したほうが良い。

#4 toshi_a 初音6ヶ月前に更新

  • 関連している 機能 #1205: 返信時にGtk::PostBoxがIntelligentTextviewを付加するための要件を緩和してほしい を追加

#5 toshi_a 初音6ヶ月前に更新

  • 関連している バグ #1225: userメソッドを持たないMessageモデルを使うとmikutterがクラッシュする を追加

#6 toshi_a 初音6ヶ月前に更新

#1229-1
結局は俺が自分で決めた仕様を勘違いしていたのが原因だったので、このパッチではなく #1225 をほとんど打ち消すようなcommitをしました、すまんな

#7 toshi_a 初音6ヶ月前に更新

  • ステータス実装待ち から 終了 に変更

二人は幸せなmergeをして終了

他の形式にエクスポート: Atom PDF