diff options
author | Liang Qi <liang.qi@qt.io> | 2016-06-20 14:09:00 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-06-21 08:39:41 +0200 |
commit | ea438b2508f329698e11c6dae6994d441c6e67df (patch) | |
tree | 7a6052b98ba1ff6e0258c52cfc2726e197f53dd2 /src/gui/image/qimage.cpp | |
parent | a2f319e9fb2f7595fc16d0d79e26438463051a53 (diff) | |
parent | 5f0ec7305e4310123ddeb98d3523087e3c560d9c (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
src/corelib/global/qglobal.cpp
src/corelib/global/qsysinfo.h
src/corelib/kernel/qcoreapplication_win.cpp
src/gui/text/qdistancefield.cpp
src/gui/text/qdistancefield_p.h
src/plugins/platforms/windows/qwindowsglcontext.cpp
src/plugins/platforms/windows/qwindowsglcontext.h
Change-Id: Ib3500acc2b28553bde06758cd9a2e19eb7fe2978
Diffstat (limited to 'src/gui/image/qimage.cpp')
-rw-r--r-- | src/gui/image/qimage.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 3a31af8645..9bd7d57c2b 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -3133,6 +3133,8 @@ void QImage::mirrored_inplace(bool horizontal, bool vertical) return; detach(); + if (!d->own_data) + *this = copy(); do_mirror(d, d, horizontal, vertical); } @@ -3279,6 +3281,8 @@ void QImage::rgbSwapped_inplace() return; detach(); + if (!d->own_data) + *this = copy(); switch (d->format) { case Format_Invalid: @@ -4762,7 +4766,7 @@ bool QImageData::convertInPlace(QImage::Format newFormat, Qt::ImageConversionFla return true; // No in-place conversion if we have to detach - if (ref.load() > 1 || ro_data) + if (ref.load() > 1 || !own_data) return false; InPlace_Image_Converter converter = qimage_inplace_converter_map[format][newFormat]; |