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

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

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

2013年1月2日

Bug-org 823369 mozilla::widget::EventFlags assumes its size is less than uint32_t
初回投稿日時: 2013年01月02日09時42分11秒
カテゴリ: Mozilla Core Mozilla20 バグ修正
SNS: (list)

EventFlagsboolのbit fieldとして作成しましたが、速度やメンテナンス製を考慮して、内部ではuint32_tとしてmemcpy()を利用したりしています。メンバが増えていくと、そのうちにuint32_tではサイズが足りなくなる可能性があり、問題になる可能性があります。

えむけいさんに教えて頂いた、MOZ_SATATIC_ASSERT()でビルド時にサイズ確認を行うようにし、typedef uint32_t EventFlags::RawFlagsと定義することで、サイズ変更の際には1行変更するだけでメンテナンスできるように修正しています。

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

bug-org 823369を含むエントリ