Bug-org 981954 Sometimes we remove a char message whose scan code is different from found message
初回投稿日時: 2014年03月11日12時51分04秒
最終更新日時: 2014年03月11日12時51分25秒
カテゴリ: Mozilla Core Mozilla28 Mozilla29 Mozilla30 Windows バグ修正
SNS:
Tweet (list)
WM_*CHAR
をPeekMessage()
で発見後に、実際に削除を行った後、想定外な状況がおきていないか、取得したメッセージが発見していたメッセージと同一のものか確認し、違っていた場合には、暗っ氏レポートにログを吐いた後、MOZ_CRASH()
でクラッシュさせていました。
このバグは、そのクラッシュで、WM_*CHAR
のlParam
内のスキャンコードが別のキーのものに置き換わっているというものです。
原因は分かっていませんが、メッセージキューの仕様から考えると、WM_*KEYDOWN
がWM_*CHAR
の前に割り込んだ後に、メッセージを削除すると、スキャンコードが差し込まれたキーメッセージのもので上書きされているのではないか、と推測しています。
現在、このスキャンコードで何らかの処理を行っている訳ではないので、この修正では、スキャンコードのみが変わっている場合、クラッシュせずにその違いを無視するようにしています。