libreoffice-online/common
Miklos Vajna 547f9ea731 Rework StringVector to have a single underlying string
This is meant to reduce lots of small allocations and instead have
pointers into the single string for the various tokens instead.

This has a few requirements, though:

1) It's no longer OK to modify the tokens, changing their length would
invalidate the start/length of other tokens. Rework
DocumentBroker::load() to avoid such mutation.

2) The iterators no longer expose zero-terminated strings, so
Poco::cat() doesn't work anymore: add an own cat() instead and use that
in e.g. ChildSession. The own cat() has the benefit that it won't read
past the end of the array if the begin index is out of bounds to add
more safety.

(This nicely works towards killing Poco usage in general.)

3) If zero-terminated strings for all individual tokens is needed, a
copy has to be made, as done in spawnProcess().

(For all of these requirements, the build fails if there are problems.)

Change-Id: Iea40e4400e630b2d669f5c72aea85cb40edf9a2c
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89711
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
2020-02-28 18:31:37 +01:00
..
Authorization.cpp Resolved: Server crash when link opened in new tab 2020-01-22 23:23:51 +01:00
Authorization.hpp
Clipboard.hpp clipboard: persist selections for a while after a view closes. 2019-08-05 22:21:54 -04:00
Common.hpp wsd: dynamic child timeout 2019-10-29 02:30:07 +01:00
Crypto.cpp
Crypto.hpp
FileUtil.cpp copyFile: de-poco-ize and handle EINTR and short writes. 2020-01-21 15:07:54 +00:00
FileUtil.hpp copyFile: de-poco-ize and handle EINTR and short writes. 2020-01-21 15:07:54 +00:00
IoUtil.cpp killpoco: removed StringTokenizer from common directory 2019-11-15 14:54:29 +01:00
IoUtil.hpp
JsonUtil.hpp
Log.cpp wsd: avoid malloc in signal handler 2019-11-19 16:13:33 +01:00
Log.hpp wsd: logging improvements and formatting 2020-02-23 21:46:55 +01:00
LOOLWebSocket.hpp
Message.hpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
MessageQueue.cpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
MessageQueue.hpp unipoll: restore missing asserts & some cleanup. 2019-05-10 17:37:59 +01:00
Png.hpp test: improve TileCacheTests 2019-10-29 02:32:05 +01:00
Protocol.cpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
Protocol.hpp Rework StringVector to have a single underlying string 2020-02-28 18:31:37 +01:00
Rectangle.hpp
Seccomp.cpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
Seccomp.hpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
security.h
Session.cpp Rework StringVector to have a single underlying string 2020-02-28 18:31:37 +01:00
Session.hpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00
SigUtil.cpp sighandler: break infinite loop with corrupted heap 2020-01-18 17:23:02 +01:00
SigUtil.hpp wsd: debug: add env variable "PAUSEFORDEBUGGER" to attach debugger 2019-12-20 19:57:47 +01:00
SpookyV2.cpp
SpookyV2.h Revert "Get rid of use of GNU libtool" and its follow-up 2019-05-27 10:25:51 +03:00
StringVector.cpp Rework StringVector to have a single underlying string 2020-02-28 18:31:37 +01:00
StringVector.hpp Rework StringVector to have a single underlying string 2020-02-28 18:31:37 +01:00
Unit.cpp Fix iOS build (and maybe Android, too) 2020-02-24 08:54:22 +01:00
Unit.hpp fuzzer: fix this up so it works again 2020-02-20 18:03:10 +01:00
UnitHTTP.hpp Switch local prisoner sockets to abstract UDS 2019-03-30 16:51:06 +00:00
Util.cpp Rework StringVector to have a single underlying string 2020-02-28 18:31:37 +01:00
Util.hpp Rework LOOLProtocol::tokenize() to return a StringVector object 2020-02-28 16:07:56 +01:00