この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2015年8月)

2015年8月9日

Bug-org 1188442 Fix IMMHandler.cpp compilation on mingw.
初回投稿日時: 2015年08月09日11時51分47秒
最終更新日時: 2015年08月09日11時52分18秒
カテゴリ: IME Mozilla Core Mozilla42 Windows バグ修正
SNS: (list)

Bug-org 1184449の修正によるregressionです。Bug-org 1184449では、IMMHandlerが選択範囲をmSelectionに可能な限りキャッシュし、負荷を減らそうとしました。しかし、実際にはキャッシュすることも出来ていなかった上にmingwでのコンパイルエラーの原因になってしまっていました。

前回の修正で、フォーカスを持っている間は、IMMHandler::GetSelection()で、mSelectionを返し、それ以外の場合は一時的なインスタンスを返すようにしていました。しかし、単純なミスで、この戻り値がSelection&ではなく、Selectionだったため(一時的なインスタンスを返す必要があったため)、実際にはmSelectionが動作していませんでした。また、元々はSelection&としてパッチを書き始めていたため、戻り値の受け取り側は全て、Selection&として受け取っていたため、mingwではコンパイルエラーになっていたのです。

今回の修正で、戻り値の型を元通り、Selection&とし、一時的なインスタンスの代わりに、メソッド内で定義した静的なインスタンスを利用するように修正しています。

関連するかもしれないエントリ

bug-org 1188442を含むエントリ