松尾です。
timelineを破棄しないための commit
6a499dfff6e2e943ee45146709f1f00ecbbc0489
には、timelineの内容が混ざる場合があるようです。
これは global変数 twittering-timeline-data を
twittering-get-and-render-timeline の時点で設定している
ためです。
twittering-get-and-render-timeline では指定された spec が
twittering-last-retrieved-timeline-spec-string と違う
ときに twittering-timeline-data が変更されています。
この実装で下記の手順を踏むと":mentions"のtimelineに
":home"のtimelineの内容が混ざります。
1. ":home"を表示
2. V→":mentions"
twittering-last-retrieved-timeline-spec-string == ":home"
twittering-last-requested-timeline-spec-string == ":mentions"
twittering-timeline-data == {":mentions"のtimeline}
になります。
3.2.の直後にV→":home"とする
twittering-last-retrieved-timeline-spec-string == ":home"
twittering-last-requested-timeline-spec-string == ":home"
twittering-timeline-data == {":mentions"のtimeline}
last-retrieved-specと指示されたspecが同じなので
twittering-timeline-data が更新されません。
この後にsentinelが起動すると
{":mentions"のtimeline} + {新規取得した":home"のtimeline}
が改めて":home"のtimelineとして記憶されてしまいます。
twittering-timeline-data-table と twittering-timeline-data
で二重管理しているのが混乱の元と思うのでそれを一元化する
修正を commit しました。
(b955a72d0bc6b1af88e71188b7d75a1a5c7e9bceです)
現在のtimeline-dataの参照にはtwittering-timeline-dataの
代わりに (twittering-current-timeline-data) を使うように
なっています。
現在の実装では違う timeline をリクエストする度に
twittering-timeline-last-update がリセットされていますが、
これも本来は twittering-timeline-data-table に含めるべき
情報と思います。いずれ対処するつもりです。
---
松尾 直志 <[email protected]>
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
twmode-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/twmode-users