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:
Tweet (list)
発見済みのWM_*CHAR
メッセージをPeekMessage()
で削除する際に、時々、false
を返して失敗し、MOZ_CRASH()
でクラッシュしているケースがクラッシュレポートのログから発見されました。残るクラッシュの大半の原因はこれのようです。
この修正では、PeekMessage()
でのメッセージ削除に失敗した場合、ウインドウを限定せずにキーメッセージを再度調査し、メッセージキューから発見済みのメッセージが発見できなかった場合にはクラッシュせず、keypress
イベントの生成自体を行わないように修正しました。原因として、フォーカスの移動等による、メッセージの宛先の変更や、外部アプリによるメッセージ削除、後ほど再生成されて、keypress
イベントが発行されるといったことが考えられるので、keypress
イベントをこの状況下では生成すべきでは無いと考えたからです。