プロジェクト

全般

プロフィール

バグ #1604

未完了

アラビア文字と絵文字の組み合わせが描画できずにクラッシュする可能性がある

Akira Ouchi さんが14日前に追加. 14日前に更新.

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

説明

以下のような、アラビア文字と絵文字が組み合わせられたトゥートでは、
描画ができずにmikutterがクラッシュする可能性があります。

https://social.mikutter.hachune.net/@akkiesoft/113790145482072510

少なくとも手元の環境では即座にクラッシュしますが、OSやフォントによっては問題ない可能性もありそうです(他の環境では未テスト)

OS: macOS Sequoia (Macports + Quartz)

GdkPixbuf-CRITICAL **: gdk_pixbuf_new_from_file_at_scale: assertion 'width > 0 || width == -1' failed
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:713:in `invoke'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:352:in `initialize_new_from_file_at_size'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/pixbuf.rb:113:in `initialize_with_hash'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/pixbuf.rb:26:in `initialize'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/deprecated.rb:45:in `new'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/deprecated.rb:45:in `new'
    from /Users/akkie/mikutter/plugin/skin/model/image.rb:35:in `pixbuf'
    from /Users/akkie/mikutter/core/mui/gtk_photo_pixbuf.rb:31:in `load_pixbuf'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:482:in `block in main_message'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:581:in `show_pango_layout'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:676:in `block in render_main_text'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `save'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `render_main_text'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:589:in `render_to_context'
    from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:220:in `signal_do_draw'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/glib2-4.2.1/lib/glib2.rb:171:in `block in check_new_method'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
    from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:118:in `events_pending?'
    from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:15:in `block (2 levels) in mainloop'
    from <internal:kernel>:187:in `loop'
    from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:11:in `block in mainloop'
    from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `catch'
    from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `mainloop'
    from mikutter.rb:79:in `boot!'
    from mikutter.rb:115:in `<main>'
/Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:713:in `invoke': failed to initialize
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:713:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:352:in `initialize_new_from_file_at_size'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/pixbuf.rb:113:in `initialize_with_hash'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/pixbuf.rb:26:in `initialize'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/deprecated.rb:45:in `new'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gdk_pixbuf2-4.2.1/lib/gdk_pixbuf2/deprecated.rb:45:in `new'
     from /Users/akkie/mikutter/plugin/skin/model/image.rb:35:in `pixbuf'
     from /Users/akkie/mikutter/core/mui/gtk_photo_pixbuf.rb:31:in `load_pixbuf'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:482:in `block in main_message'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:581:in `show_pango_layout'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:676:in `block in render_main_text'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `save'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `render_main_text'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:589:in `render_to_context'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:220:in `signal_do_draw'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/glib2-4.2.1/lib/glib2.rb:171:in `block in check_new_method'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:118:in `events_pending?'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:15:in `block (2 levels) in mainloop'
     from <internal:kernel>:187:in `loop'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:11:in `block in mainloop'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `catch'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `mainloop'
     from mikutter.rb:79:in `boot!'
     from mikutter.rb:115:in `<main>'
/Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/glib2-4.2.1/lib/glib2.rb:46:in `exit': exit
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/glib2-4.2.1/lib/glib2.rb:46:in `exit_application'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:581:in `show_pango_layout'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:676:in `block in render_main_text'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `save'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:674:in `render_main_text'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:589:in `render_to_context'
     from /Users/akkie/mikutter/plugin/gtk3/widget/miraclepainter.rb:220:in `signal_do_draw'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/glib2-4.2.1/lib/glib2.rb:171:in `block in check_new_method'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:711:in `invoke'
     from /Users/akkie/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/gobject-introspection-4.2.1/lib/gobject-introspection/loader.rb:118:in `events_pending?'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:15:in `block (2 levels) in mainloop'
     from <internal:kernel>:187:in `loop'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:11:in `block in mainloop'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `catch'
     from /Users/akkie/mikutter/plugin/gtk3/mainloop.rb:9:in `mainloop'
     from mikutter.rb:79:in `boot!'
     from mikutter.rb:115:in `<main>'
notice: {MIKUTTER_DIR}/core/serialthread.rb:48:in `force_exit!': all Serial Thread Group jobs canceled.
notice: mikutter.rb:91:in `boot!': raise mainloop exception `SystemExit'
notice: mikutter.rb:119:in `rescue in <main>': catch SystemExit

ファイル

Akira Ouchi さんが14日前に更新

Akira Ouchi さんが14日前に更新

Akira Ouchi さんが14日前に更新

Linux(Raspberry Pi OS)では再現できない模様。再現する環境の絵文字がApple Color Emoji Fontなので、そちらとの組み合わせの可能性もあるかも知れません。

あひる 家鴨 さんが14日前に更新

あひる 家鴨 さんが14日前に更新

  • 再現手順 を更新 (差分)

あひる 家鴨 さんが14日前に更新

参考までに OS: macOS Sequoia (homebrew + AppleのQuartz, mikutterは最新のdevelop)では問題なく表示できているようでした。(fontなどは未確認です)

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