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へのアクセスに失敗していることを意味しますので、発見された場合はバグとして報告してください。