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

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

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

2014年1月29日

Bug-org 959999 [TSF] Clean up nsTextStore::Initialize()
初回投稿日時: 2014年01月29日21時24分07秒
カテゴリ: Mozilla Core Mozilla29 TSF Windows バグ修正
SNS: (list)

プロセスが起動された初期段階で、nsTextStore::Initialize()が呼び出され、TSFに必要なグローバルオブジェクトを取得、生成、初期化していくのですが、参照カウンタが絡んでいる関係で、途中でエラーが発生した場合のクリーンナップ処理等が非常に汚くなっていました。

この修正で、各種オブジェクトをそのままグローバル変数に取得せず、一旦、スタック上のnsRefPtr<T>に取得し、エラーが発生したらそのままnsTextStore::Initialize()からreturnし、全てに成功した場合にのみ、nsRefPtr<T>から、グローバル変数にポインタを保存しなおす、という形でシンプルにしています。

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

bug-org 959999を含むエントリ