Bug-org 910978 Implement Assign*EventData() for all ns*Event
初回投稿日時: 2013年09月30日21時20分13秒
カテゴリ: Events Mozilla Core Mozilla26 バグ修正
SNS:
Tweet (list)
全ての内部イベントクラスにメンバをコピーするメソッドを実装しようというバグです。
もともとは、nsDOMEvent
で、変数に保存されたDOMイベントのディスパッチが終わった後にも、各プロパティにアクセスできるようにするために、コピーしていただけだったので、nsDOMEvent
内で直接行われていました。このため、nsGUIEvent.h
内でイベントクラスにメンバを追加しても、ここの修正を忘れていたり、Bug-org 910156のようなバグの温床になるので、クラスの定義部分で確実に管理できるようにしようというのが、このバグ修正の理由となっています。
コピーコンストラクタを作れ、という意見もあるかと思いますが、イベント全体を丸ごと単純にコピーする、という用途は皆無なので、あえて、通常のコンストラクタでインスタンス生成後に、内容を条件に応じてコピーするメソッドを利用するという形になっています(strong referenceなメンバを含んでいるので、単純なコピーを許可すると、メモリリークバグを産みやすくなってしまうため)。