Project

General

Profile

Actions

バグ #1078

open

Gtk::TreeIter が指す行の存在を確認していない箇所がある

Added by toshi_a 初音 almost 7 years ago.

Status:
新規
Priority:
通常
Assignee:
-
Target version:
プラグイン名:
ブランチ:
クラッシュする:

Description

Gtk::TreeIter が指し示す行が存在しない場合を考慮していないため、 #1077 のような問題が発生した。
Gtk::TreeIterインスタンスの作成後に行が削除される可能性がある場合は、存在をチェックしなければならない。

潜在的には、Photo Modelのload_pixbufメソッドのような振る舞いをするメソッドを利用する箇所すべてを見直す必要がある。

source:core/mui/gtk_inneruserlist.rb#L37

      iter[COL_ICON] = user.icon.load_pixbuf(width: 24, height: 24){|pixbuf|
        iter[COL_ICON] = pixbuf unless destroyed?
      }

source:core/plugin/activity/model_selector.rb#L22

          iter[ICON] = record.icon.load_pixbuf(width: 24, height: 24) do |loaded_icon|
            iter[ICON] = loaded_icon
          end

source:core/plugin/shortcutkey/shortcutkey_listview.rb#L39

            iter[COLUMN_COMMAND_ICON] = icon.load_pixbuf(width: 16, height: 16){ |pixbuf|
              if not destroyed?
                iter[COLUMN_COMMAND_ICON] = pixbuf end } end end } end

source:core/plugin/shortcutkey/shortcutkey_listview.rb#L192

            iter[COL_ICON] = icon.load_pixbuf(width: 16, height: 16) do |pixbuf|
              iter[COL_ICON] = pixbuf if not destroyed?
            end

source:core/plugin/change_account/account_control.rb#24

      iter[COL_ICON] = service.user_obj.icon.load_pixbuf(width: 16, height: 16) { |new_pixbuf|
        iter[COL_ICON] = new_pixbuf if not self.destroyed? }


Related issues

Related to 致命的 #1077: Gtk-CRITICAL **: IA__gtk_list_store_set_value の出力を繰り返した後、特定の行でクラッシュする。終了toshi_a 初音2017-11-01

Actions
Actions #1

Updated by toshi_a 初音 almost 7 years ago

  • Related to 致命的 #1077: Gtk-CRITICAL **: IA__gtk_list_store_set_value の出力を繰り返した後、特定の行でクラッシュする。 added
Actions

Also available in: Atom PDF