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

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

もずはっく日記(2014年3月)

2014年3月11日

Bug-org 981958 PeekMessage() sometimes fails (returns false) at removing found char message on MetroFirefox
初回投稿日時: 2014年03月11日13時02分52秒
カテゴリ: Mozilla Core Mozilla28 Mozilla29 Mozilla30 Windows バグ修正
SNS: (list)

発見済みのWM_*CHARメッセージをPeekMessage()で削除する際に、時々、falseを返して失敗し、MOZ_CRASH()でクラッシュしているケースがクラッシュレポートのログから発見されました。残るクラッシュの大半の原因はこれのようです。

この修正では、PeekMessage()でのメッセージ削除に失敗した場合、ウインドウを限定せずにキーメッセージを再度調査し、メッセージキューから発見済みのメッセージが発見できなかった場合にはクラッシュせず、keypressイベントの生成自体を行わないように修正しました。原因として、フォーカスの移動等による、メッセージの宛先の変更や、外部アプリによるメッセージ削除、後ほど再生成されて、keypressイベントが発行されるといったことが考えられるので、keypressイベントをこの状況下では生成すべきでは無いと考えたからです。

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

bug-org 981958を含むエントリ