スレ表示高速化パッチ。cvsからの差分でkitaで-p0。変更部分は
datinfo.{h,cpp} kita_misc.{h,cpp} parsemisc.h datmanager.{h,cpp} kitaconfig.cpp
kitawriteview.cpp kitahtmlpart.cpp kitadomtree.{h,cpp}

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1204.txt

(おおまかな説明) 一番大きな変更点はパースエンジンを書き直してDOM系のクラスを除いたこと。
いままではHTMLDocument::createElement()を使ってノードを作ってましたが、KHTMLが最適化
されたKDE3.2以降はHTMLを丸投げしてKHTMLにレンダリングしてもらった方が速いことが分かったので、
DatInfo以下のクラスではHTMLテキストだけを扱うことにして、HTMLElement::setInnerHTML()を
使ってレンダリングすることにしました。( KitaDomTree::createResElement() のところ)。
これによってパース関係の関数が見やすくなりました。またハース関係の関数を一ヶ所
(kita_miscの700行以下あたり)にまとめて、パースの流れが分かり易くなるように整理しました。
その他、必要ないコードを削除したりメモリ消費量を減らしたり等。

(もうちょっと詳しい説明) 心臓となる関数はKita::parseResDat()で、 datinfo.hで定義されている
ResDat構造体のnumにレス番号、linestrにレスの生データをセットしてKita::parseResDat()に送れば
ResDatの各項目に生データが入ります。例えばKita::DatToHtml()を見ると分かり易いかも。

実際にキャッシュの中にあるレスが表示されるまでの流れはこんな感じ。

(1) KitaHTMLPart::setup()のKita::DatManager::createDatInfo()でDatInfoクラスが
作られる際にDatInfo::initPrivate()の中のm_access->getcache()により、Accessクラスから各行の
生データ(unicodeにエンコード済み)がDatInfo::slotReceiveData()に送られて来て、行ごとに
DatInfo::copyOneLineToResDat()を呼んで、そこで resdat.num = num;、resdat.linestr = line;
とレスの番号と生データがResDat構造体にセットされる。

つづく