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

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

もずはっく日記(2011年6月)

2011年6月14日

Bug-org 660640 Preferences spams lots of failing NS_ENSURE_TRUE at shutdown
初回投稿日時: 2011年06月14日17時01分24秒
カテゴリ: Mozilla Core Mozilla7 バグ修正
SNS: (list)

mozilla::Preferencesに登録されていたobserverはXPCOMのシャットダウンをmozilla::Preferences自身が知った際に削除し、自身のシングルトンインスタンスもリリースしていたため、これよりも後からXPCOMのシャットダウンを知ることになるモジュールからのobserverの登録解除が無用な警告を大量に出力するようになっていました。

この修正で、まずはmozilla::Preferencesは後始末をXPCOMのシャットダウン時ではなく、シングルトンインスタンスが実際に破棄される時に遅らせるように修正しました。これにより、XPCOMシャットダウンの通知がmozilla::Preferencesよりも遅いモジュールがprefsへのアクセスをシャットダウン時に必要としている場合、あらかじめnsCOMPtrでサービスのインスタンスを掴んでおけば可能なように改善しています。

また、RemoveObserver()が既にシングルトンインスタンスが破壊されている状態で呼ばれてもそれはバグにはならないのでこの際には警告を出力しないように修正しています。

このため、もし、なんらかのモジュールからのアクセスで同様の警告が出ていることがあれば、それは実際にバグっていて、prefへのアクセスに失敗していることを意味しますので、発見された場合はバグとして報告してください。

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

bug-org 660640を含むエントリ