Go to file
Kai Koehne 263b29eedb Fix allocated memory of QByteArray returned by QIODevice::readLine
If the maxSize argument is 0 (the default), QIODevice::readLine will
allocate a QByteArray with the size of the next chunk of data, which
may be quite large. Before returning, it then resizes the byte array
to the actual size that was read.

But since change 6b884d2aa1, QByteArray::resize() does no
longer shrink the capacity. This means that the returned QByteArray
keeps it's maximum size as allocated memory. This can lead to
excessive memory consumption, especially if the returned QByteArray's
are stored for further processing in the client code.

Fix this by explicitly calling QByteArray::squeeze() before returning.

[ChangeLog][QtCore][QIODevice] Fixes a regression in Qt 5.15 causing
QByteArray's that are returned by QIODevice::readLine() to
consume large amounts of memory.

Fixes: QTBUG-87010
Pick-to: 5.15
Change-Id: I1f95fc4098849e900680fc945238bfeda881022c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-10-18 17:46:14 +00:00
.github/workflows GitHub Actions: Fix workflow file 2020-09-11 13:37:48 +02:00
bin Streamline the template specialization of QESDP's dtor 2020-10-05 10:16:52 +02:00
cmake CMake: Ignore license-related configure arguments 2020-10-17 23:27:31 +02:00
coin Set MSVC environment script specifically for MSVC 2020-10-01 22:54:22 +03:00
config.tests CMake: Skip regeneration of manual compile test project 2020-04-09 11:26:46 +02:00
dist Remove last remainings of Qt Quick 1 imports 2020-05-25 11:48:12 +02:00
doc Add Qt Marketplace link as an external page 2020-10-12 13:00:43 +02:00
examples Brush up the basicsortfiltermodel example 2020-10-14 20:35:16 +02:00
lib
mkspecs Generalize the winmain/qtmain entry-point library 2020-10-17 12:13:00 +02:00
qmake qmake: Fix qHash-related integer conversion warnings 2020-10-17 11:56:59 +02:00
src Fix allocated memory of QByteArray returned by QIODevice::readLine 2020-10-18 17:46:14 +00:00
tests Swallow some runtime warnings from tst_qapplication 2020-10-18 17:00:34 +02:00
util CMake: pro2cmake: Handle qt3d library names 2020-10-17 12:12:32 +02:00
.cmake.conf pro2cmake.py: Generate .cmake.conf files for versioning 2020-04-30 17:44:03 +00:00
.gitattributes
.gitignore .gitignore: Qt Creator files cleanup 2020-09-25 07:50:15 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.prev_configure.cmake CMake: Introduce CMake-only optimize_full feature 2020-10-06 10:07:08 +02:00
.prev_qt_cmdline.cmake CMake: Regenerate configure.cmake files 2020-09-28 15:48:17 +02:00
.qmake.conf Bump version 2020-02-02 13:41:14 +01:00
.tag
CMakeLists.txt CMake: Fix building examples targeting iOS simulator with qmake 2020-10-16 13:53:04 +02:00
config_help.txt CMake Build: Add support for -qtlibinfix configure parameter 2020-09-23 17:31:13 +02:00
configure configure: add -qmake argument 2020-10-01 14:34:05 +02:00
configure.bat configure: add -qmake argument 2020-10-01 14:34:05 +02:00
configure.cmake CMake: Allow Debug-only iOS builds 2020-10-16 13:53:03 +02:00
configure.json By default don't try to use pkg-config when targeting Android 2020-09-28 15:48:17 +02:00
configure.pri Android: allow setting javac build version from the configure script 2020-09-16 20:55:08 +03:00
dependencies.yaml Re-add dependencies.yaml so repos outside qt5 can be built with Coin 2019-09-19 17:07:36 +00:00
INSTALL
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.LGPLv3
LICENSE.QT-LICENSE-AGREEMENT Update enterprise license agreement v4.2.1 2019-12-18 13:07:19 +02:00
qt_cmdline.cmake CMake: Fix the -sanitize configure option 2020-10-12 13:57:56 +02:00
qtbase.pro Update qmake before building src 2020-08-19 18:25:51 +02:00
sync.profile Remove last remaining bits of QtPlatformHeaders 2020-08-04 07:12:32 +02:00