バグ:台詞コンテントの編集ダイアログでクラッシュ

Issue #337 resolved
暗黒 騎士 created an issue

#336の実験中に発生しました。

編集中だったテキストは以下です。

「文字
\&R💎

😱;♛」

話者[選択中]その他設定なし

この末尾に緑色(&G)をボタンで挿入しようとすると確定でエラーがでるようです。

2020-02-25 17:43:37 [Build: 2020-02-23 20:21:33 Debug / Console (64-bit)] cwx\utils.d:137 Stack Trace --------
cwx\editor\gui\dwt\mainwindow.d-mixin-4568, 4568
cwx\editor\gui\dwt\mainwindow.d-mixin-4571, 4571
cwx\editor\gui\dwt\dmenu.d-mixin-420, 420
cwx\editor\gui\dwt\messageutils.d-mixin-1656, 1656
cwx\editor\gui\dwt\messageutils.d-mixin-772, 772
cwx\editor\gui\dwt\messageutils.d-mixin-2101, 2101
cwx\msgutils.d-mixin-458, 458
cwx\msgutils.d-mixin-459, 459

2020-02-25 17:43:37 [Build: 2020-02-23 20:21:33 Debug / Console (64-bit)] cwx\editor\gui\dwt\mainwindow.d:4687 [Range violation] cwx\msgutils.d, 460: 0x00007FF6EEEA79A2
0x00007FF6ED9A84FF
0x00007FF6EE1350D2
0x00007FF6EE11886B
0x00007FF6EE12ABA8
0x00007FF6EE5B17CE
0x00007FF6EECCABC2
0x00007FF6EED0160E
0x00007FF6EEC02F39
0x00007FF6EEC6033F
0x00007FF6EEC5E08D
0x00007FF6EE515C56
0x00007FF6ED3694AD
0x00007FF6EEF01493
0x00007FF6EEF012CC
0x00007FF6EEF013CB
0x00007FF6EEF012CC
0x00007FF6EEF0111D
0x00007FF6EEED60F0
0x00007FF6ED369B12
0x00007FF6EEFFD738
0x00007FFC691D7BD4 in BaseThreadInitThunk
0x00007FFC69D8CEE1 in RtlUserThreadStart

Comments (2)

  1. k4nagatsuki repo owner

    pull request #619

    ご報告ありがとうございます。

    今日まで勘違いしていたのですが、cwxeditorが使っているGUIツールキットのDWTは、文字列の選択位置として正確な文字数ではなくワイド文字列(UTF-16)として扱った時の位置を返すようです。DWTのベースとなるSWTはJavaのライブラリなので、Javaの文字列の仕様から推測できているべきでした。

    絵文字の中にUTF-16で表現できないものがあったのでバグが顕在化した形です。

  2. 暗黒 騎士 reporter

    対応ありがとうございました。7.2に含まれているため閉じておきます。

    ちなみにPy2で表示されないのはサロゲートペア文字がメッセージ処理のどこか(多分一文字切り出し時)で分離されているという問題でした。 つまり「𥁕」「𩸽」というようなサロゲートペア漢字も文字化けしていますが、 これらはCWXEditorでは正常表示できるので、別種の問題だったようです。

  3. Log in to comment