Bug-org 1055342 [TSF] Rename CurrentContent of nsTextStore to LockedContent
初回投稿日時: 2014年08月28日12時00分59秒
カテゴリ: Mozilla Core Mozilla34 TSF バグ修正
SNS:
Tweet (list)
TSFの実装であるnsTextStore
のプチリファクタリングです。
これまでは、コンテンツを取得する必要があるのは、常に、ドキュメントがロックされている間だけでした。しかし、マウスイベントの通知に対応するためには、ドキュメントがロックされていない間に発生するITfMouseSink
のインストール時にもコンテンツを取得することが必要になります。
しかし、常にコンテンツを取得し、キャッシュし続けるのは、メモリ消費量の観点からすると非常にコストパフォーマンスが悪すぎます。たとえば、wiki等の巨大なコンテンツを編集していると、エディタ内のテキストが1MB以上ある可能性も普通にあります。
このため、従来から存在するnsTextStore::mContent
は引き続き、ドキュメントロック中のコンテンツのみキャッシュすることにし、変わらず、ドキュメントのアンロック時に内容を破棄するようにすることにしました。このため、nsTextStore::mLockedContent
にリネームし、ロック中のコンテンツのキャッシュであることが自明なように修正しました。これにあわせて、mLcokedContent
を初期化するメソッドも、nsTextStore::CurrentContent()
から、nsTextStore::LockedContent()
に改名しています。
さらに、コンテンツの取得を二重化しないように、nsTextStore::GetCurrentText()
というメソッドを新設し、nsTextStore::LockedContent()
もこれを呼び出すようにしています。