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

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

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

2014年8月12日

Bug-org 1046101 Redesign nsEventStructType
初回投稿日時: 2014年08月12日00時47分54秒
最終更新日時: 2014年08月12日00時48分54秒
カテゴリ: Events Mozilla Core Mozilla34 バグ修正
SNS: (list)

nsEventStructTypeのリネーム等々を行って整理しようというバグです。

DOMイベントの実装クラスのメンバに、WidgetEventや、その派生クラスをイベントの種類ごとに固有のものを持っていますが、この内部処理用のクラスは、基底クラスのポインタから、インスタンスのクラスを特定するために、eventStructTypeメンバを持っており、これは、イベントのクラスごとにひとつ、nsEventStructTypeで列挙されている固有の値が、インスタンス生成時に設定されています。

今回の再デザインの主目的は、この、nsEventStructTypeを、EventClassNameList.hをインクルードして、自動的に生成することを可能にする、というものでした。そのため、NS_FOO_EVENTという名前だった各値を、eFooEventClassという名前に変更しています。

また、C言語ではstructというと、構造体をイメージしてしまうので、nsEventStructTypeは、mozilla::EventClassIDに改名し、WidgetEvent::eventStructTypeは、WidgetEvent::mClassに改名しています。

これらの修正により、

if (aEvent->eventStructType == NS_MOUSE_EVENT) {

というコードが、

if (aEvent->mClass == eMouseEventClass) {

という感じになりました。

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

bug-org 1046101を含むエントリ