do not use text-based LOK callback internally

Desktop / LibreOffice - Luboš Luňák [collabora.com] - 15 October 2021 11:39 UTC

CallbackFlushHandler post-processes LOK messages, but for things like dropping useless invalidations it needs to know the rectangle or the view id, and since the only data it gets are string messages, it needs to convert those back to binary form. Which is slow with large numbers of messages.

Add internal LOK callback variant that allows also passing specific data in the original binary form. And then use directly the binary data in CallbackFlushHandler.

Change-Id: I8dd30d2ff9c09feadebc31a44d8e6a8ccc306504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123589

3b729db05553 do not use text-based LOK callback internally
desktop/inc/lib/init.hxx | 59 +++++++--
desktop/qa/desktop_lib/test_desktop_lib.cxx | 41 ++++++
desktop/source/lib/init.cxx | 170 ++++++++++++++-----------
include/editeng/outliner.hxx | 2 +
include/sfx2/lokcallback.hxx | 41 ++++++
include/sfx2/viewsh.hxx | 10 +-
sc/qa/unit/tiledrendering/tiledrendering.cxx | 154 +++++++++++-----------
sc/source/ui/view/tabview5.cxx | 3 +-
sd/qa/unit/tiledrendering/CallbackRecorder.hxx | 26 ++--
sd/qa/unit/tiledrendering/tiledrendering.cxx | 82 ++++++------
sfx2/source/view/lokhelper.cxx | 43 ++++---
sfx2/source/view/viewimp.hxx | 3 +-
sfx2/source/view/viewsh.cxx | 51 ++++++--
sw/qa/core/txtnode/txtnode.cxx | 31 ++---
sw/qa/extras/tiledrendering/tiledrendering.cxx | 147 +++++++++++----------
15 files changed, 517 insertions(+), 346 deletions(-)

Upstream: cgit.freedesktop.org


  • Share