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

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

もずはっく日記(2013年9月)

2013年9月30日

Bug-org 911463 nsDOMUIEvent::IsChar() casts nsTextEvent* as nsKeyEvent*
初回投稿日時: 2013年09月30日21時11分17秒
カテゴリ: Events Mozilla Core Mozilla26 バグ修正
SNS: (list)

GeckoのDOM KeyboardEventと、TextEventにはisCharというプロパティがありますが、TextEvent.isCharの取得時に、間違えたキャストを行って、正しい値を返していなかったというバグです。

isCharの値は、nsKeyEventと、nsTextEventのメンバに保存されているので、それぞれに正しくキャストしてアクセスしなくてはいけないのですが、nsTextEventのインスタンスであっても、nsKeyEventにキャストしてアクセスしていました。

見つけた時は焦ったのですが、調べたところ、32bit版でも、64bit版でも、クラスのインスタンス内を参照しているので、クラッシュすることはありません。返ってくる値がデタラメなだけでした。

このバグ自体は修正しましたが、そもそも、nsTextEvent::isCharは正しく初期化されていないプラットフォームの方が多い上に、他のブラウザには存在しない非標準イベントですので、参照しないようにしてください。

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

bug-org 911463を含むエントリ