Skip to content
  • Daniel Vrátil's avatar
    Remove Akonadi::Entity and Akonadi::AttributeEntity · 193d3a67
    Daniel Vrátil authored
    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).
    193d3a67