[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [kmail2] [Bug 312460] Kmail can not show correct number of unread mails
From:       Christian Mollekopf <chrigi_1 () fastmail ! fm>
Date:       2013-11-15 18:13:56
Message-ID: bug-312460-17878-hINX3dQkYS () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=312460

Christian Mollekopf <chrigi_1@fastmail.fm> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|CONFIRMED                   |RESOLVED
   Version Fixed In|                            |4.11.4
         Resolution|---                         |FIXED
      Latest Commit|http://commits.kde.org/kdep |http://commits.kde.org/kdep
                   |im/c7acedfeebbb1edd0912b9cb |imlibs/af4cb1739873d7b95c1b
                   |fda9ca707d2e8c83            |44a23bb06440d0ecb96c

--- Comment #75 from Christian Mollekopf <chrigi_1@fastmail.fm> ---
Git commit af4cb1739873d7b95c1b44a23bb06440d0ecb96c by Christian Mollekopf.
Committed on 06/11/2013 at 11:30.
Pushed by cmollekopf into branch 'KDE/4.11'.

Fixed refcounting in ETM and Monitor

This is a combination of several commits in order to fix the buffering
in the ETM.

In particular it incorporates the following changes:

1.

Fixed fetching of items that exited the buffer after being referenced.

After a collection exits the buffer after being referenced,
the monitor no longer emits updates for this collection.
It is therefore necessary for the ETM to refetch the items to get missing
updates.

2. (regarding the removal of the MAXITEMS limit)

Don't keep outdated copies of items.

A collection is purged if reference counting is used and a collection
exits the buffer after being referenced. By not purging the items, it becomes
possile that we miss updates, and when refetching the collection because it's
referenced again, we don't emit change notifications because the items were in
the model already.

Since we anyways have to fetch all items, we can as well purge all items.

Alternatives:
* compare revisions and emit change notifications if necessary in itemsFetched
* Still emit notifications in the monitor for modifications only

3.

Only buffer a collection after the refcount reaches zero.

Before, a collection that was dereffe'd at least once would
already be buffered (although the refcount is still >0), resulting in
the buffer being occupied by reffe'd collections (which is pointless).
REVIEW: 113680
FIXED-IN: 4.11.4

M  +8    -14   akonadi/entitytreemodel_p.cpp
M  +22   -7    akonadi/monitor_p.cpp
M  +13   -0    akonadi/monitor_p.h
M  +1    -0    akonadi/tests/CMakeLists.txt
A  +188  -0    akonadi/tests/lazypopulationtest.cpp     [License: LGPL (v2+)]

http://commits.kde.org/kdepimlibs/af4cb1739873d7b95c1b44a23bb06440d0ecb96c

-- 
You are receiving this mail because:
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic