Skip to content
Commit 193d3a67 authored by Daniel Vrátil's avatar Daniel Vrátil 🤖
Browse files

Remove Akonadi::Entity and Akonadi::AttributeEntity

Collection and Item now have each their own implementation of attribute handling
(which we can factor out into some shared code later), and by not having to deal
with the polymorphism of Entity, we can get rid of vtable in ItemPrivate and
CollectionPrivate and better re-order member variables. This saves us 16 bytes
per Item and 32 (!) bytes per Collection. Tag now requires 8 bytes more
of memory due to TagPrivate being QSharedData (but we save something on Tag now).

We could also remove the copy-d_ptr-via-temporary-assignment from from Item,
because the usecase only really affects Collections. This should make copying
Items a bit faster (the assignEntityPrivate() workaround was showing up in
callgrind quite high).
parent 89751162
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment