kossebau created this revision.
kossebau added reviewers: Frameworks, dfaure, apol.
Herald added a project: Frameworks.
Herald added a subscriber: kde-frameworks-devel.
kossebau requested review of this revision.

REVISION SUMMARY
  For entries with fixed set of fields having an initializer list option comes
  as nice syntactix sugar and spares the need of the explicit reserve() call,
  and making sure to use the right size value there.
  
  Due to fields having either a numeric value or a string one, this needs some
  bit of C++ vodoo to avoid extra costs of having both a QString & a longlong
  field per every entry, which would also mean a QString constructor &
  destructor call also for each numeric field of the init list.
  The UDSEntryBenchmark showed that those constructors & destructors add
  notable cossts over explicit code to reserve & fill a UDSEntry, while using
  a union with a QString mapped onto a char array gets numbers close.

TEST PLAN
  New & old unit tests work, KIO usage e.g. in Dolphin with local filesystem
  or FTP server works as before.

REPOSITORY
  R241 KIO

BRANCH
  udsentryinitlistconstructor

REVISION DETAIL
  https://phabricator.kde.org/D28528

AFFECTED FILES
  autotests/udsentrytest.cpp
  autotests/udsentrytest.h
  src/core/slavebase.cpp
  src/core/udsentry.cpp
  src/core/udsentry.h
  src/ioslaves/ftp/ftp.cpp
  src/ioslaves/http/http.cpp
  src/widgets/renamedialog.cpp
  tests/udsentrybenchmark.cpp

To: kossebau, #frameworks, dfaure, apol
Cc: kde-frameworks-devel, LeGast00n, cblack, GB_2, michaelh, ngraham, bruns

Reply via email to