Bug-org 660640 Preferences spams lots of failing NS_ENSURE_TRUE at shutdown
初回投稿日時: 2011年06月14日17時01分24秒
カテゴリ: Mozilla Core Mozilla7 バグ修正
SNS:
Tweet (list)
mozilla::Preferences
に登録されていたobserverはXPCOMのシャットダウンをmozilla::Preferences
自身が知った際に削除し、自身のシングルトンインスタンスもリリースしていたため、これよりも後からXPCOMのシャットダウンを知ることになるモジュールからのobserverの登録解除が無用な警告を大量に出力するようになっていました。
この修正で、まずはmozilla::Preferences
は後始末をXPCOMのシャットダウン時ではなく、シングルトンインスタンスが実際に破棄される時に遅らせるように修正しました。これにより、XPCOMシャットダウンの通知がmozilla::Preferences
よりも遅いモジュールがprefsへのアクセスをシャットダウン時に必要としている場合、あらかじめnsCOMPtr
でサービスのインスタンスを掴んでおけば可能なように改善しています。
また、RemoveObserver()
が既にシングルトンインスタンスが破壊されている状態で呼ばれてもそれはバグにはならないのでこの際には警告を出力しないように修正しています。
このため、もし、なんらかのモジュールからのアクセスで同様の警告が出ていることがあれば、それは実際にバグっていて、prefへのアクセスに失敗していることを意味しますので、発見された場合はバグとして報告してください。