Kita - 2ch client for KDE part2
■ このスレッドは過去ログ倉庫に格納されています
0620421
04/11/28 23:57:32ID:2307/MxEもうひとつ、「お気に入りスレに登録されてる」って条件が必要ですね。つまり、
FavoriteThreads::processThreadNode()のThreadIndex::loadIndex()で
キャッシュがあろうが無かろうがidxを読み込んでしまうためデータベースが壊れて、
キャッシュが無いのにReadNum > 0 になるため、KitaHTMLPart::setup()の
if( Kita::DatManager::getReadNum( m_datURL ) == 0 ) Kita::DatManager::createDatInfo( m_datURL );
のところでDatInfoを作らずにそのまま突き進んで、結局右クリックすると
KitaHTMLPart::showPopupMenu()の datInfo = Kita::DatManager::getDatInfoPointer()で
NULLが返って datInfo->getReadNum()でぬるぽで落ちるという感じ。
で、とりあえずこんな感じで回避。
diff kitahtmlpart.cpp.org kitahtmlpart.cpp
130c130
< if( Kita::DatManager::getReadNum( m_datURL ) == 0 ) Kita::DatManager::createDatInfo( m_datURL );
---
> Kita::DatManager::createDatInfo( m_datURL );
KitaHTMLPart::setup()でReadNum==0のチェックを外しただけ。するとDatInfoが
作られたときにDatInfo::initPrivate()の中でm_thread->setReadNum( 0 );
としてるのでレス数がリセットされます。DatManager::getDatInfo()を見れば
分かるように、別にReadNum==0のチェックを外しても害は無いです。というか、
むしろチェックすると上みたいな害がある訳ですがw
整合性が壊れる問題の根本的な解決は次バージョンでやります。
■ このスレッドは過去ログ倉庫に格納されています