summaryrefslogtreecommitdiffstats
path: root/src/gui/image
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.6.0' into 5.6Liang Qi2016-02-152-1/+7
|\ | | | | | | Change-Id: I0b190005377a23a91da3563428e223b8a3b18333
| * Crash fix: reject certain malformed bmp imagesEirik Aavitsland2016-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | A malformed bmp file header could specify a negative color table size. The bmp handler would then return a QImage that claimed to be valid, but actually was invalid, having an empty color table. This would cause crash later, e.g. when attempting to paint it. Change-Id: I7df7c40867557a82dbcee44c7de061226ff232c0 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Richard J. Moore <rich@kde.org>
| * Do not change depth for the backingstore's underlying imageLaszlo Agocs2016-02-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | The depth cannot change. This means that RGB16 cannot be upgraded to 8565 for example as that would be a 24 bit format whereas the backingstores and the underlying platform may expect a 16 bit format. Task-number: QTBUG-50869 Change-Id: I648b39287d43a80fae8097a33bbf3b8bbdcb8816 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | QtGui: Use QImage::constBits()/constScanLine() in non-const contexts.Friedemann Kleint2016-02-136-10/+10
| | | | | | | | | | | | | | | | | | Prevent potential detaching by using constBits()/constScanLine() instead of bits()/scanLine(). Change-Id: If03f8d4d3b8ed4c07aed5eff7f580e57ca771919 Reviewed-by: Gunnar Sletta <gunnar@sletta.org> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Reduce allocations by using reserve()Sérgio Martins2016-02-071-0/+2
|/ | | | | Change-Id: If34fa53402985f6b3c5e7217bce4a1177af835b6 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-191-2/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/common/atomic64/atomic64.cpp configure src/3rdparty/forkfd/forkfd.c src/corelib/io/forkfd_qt.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tools/configure/configureapp.cpp Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
| * Detect alpha8 as having alpha-pixelsAllan Sandfeld Jensen2015-11-301-2/+17
| | | | | | | | | | Change-Id: I09025da7e3df84b6092295ec1a02698bd7b24bed Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Use backing store formats with alphaAllan Sandfeld Jensen2016-01-083-51/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | We depend on being able to punch holes in the backing store when integrating with FBO elements. To do that we need a format with an alpha channel. This was only working previously because RGB32 didn't mask when filling or when converting to ARGB32_PM, but other formats didn't. Also unifies the logic for getting alpha versions of QImage formats. Task-number: QTBUG-50281 Change-Id: Ied1325f60e2b67d9ea2dfa9701b06fc2231ebfca Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Use Q_CONSTRUCTOR_FUNCTION instead of doing the same manuallyAllan Sandfeld Jensen2015-12-171-10/+1
| | | | | | | | | | | | | | | | Use the macro we have that does exactly what we want without the boiler plate code. Change-Id: I25c67a71f83f91f50128c8a54033ee53ad28e88a Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | Optimize qt_findAtNxFile by reducing the amount of allocationsOlivier Goffart2015-12-071-4/+5
| | | | | | | | | | Change-Id: I94a2b40933f9469f509a4cc54d68138696704ba2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Initialize function tables without QGuiApplicationAllan Sandfeld Jensen2015-12-072-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | QImage can be used without QGuiApplication, but wihout QGuiApplication the accelerated methods would not be used. This patch changes the initialization of the QtGui function tables to happen in static object constructors on QtGui load, instead of in the QGuiApplication init. Change-Id: Ib58982fbc50fd79122352d021d93a3c99aca5043 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | QImage pixelColor and setPixelColor must use unpremultiplied QColorAllan Sandfeld Jensen2015-12-041-8/+22
| | | | | | | | | | | | | | | | | | QColor always uses unpremultiplied alpha, but the new QImage methods were based on the QRgb versions which might be either. This patches fixes the two new methods so they treat QColor alpha correctly. Change-Id: I78a5b875ad4e78ad7fde3b811c6187482b4f6d15 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Fix possible null pointer dereferences.Jake Petroules2015-12-021-0/+8
| | | | | | | | | | | | | | | | This follows up 130c2baa9376dcf525916620294bd9996bdf41f3. Change-Id: I2f6c9b4f995af427cec9a2162b782039debf8564 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* | QtBase: remove explicit function info from qWarning() etcMarc Mutz2015-11-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | This information is already registered by the QMessageLogger ctor. Where, by dropping the << Q_FUNC_INFO in ostream-style qDebug(), only a string literal remained, converted to printf-style qDebug() on the go. Change-Id: I3f261c98fd7bcfa1fead381a75a82713bb75e6f3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Add AArch64 ASM to qimage_neon.cppAllan Sandfeld Jensen2015-11-263-5/+30
| | | | | | | | | | | | | | | | | | | | | | Since AArch64 NEON assembly is different from Arm32 NEON we need to write a separate version. Assembly is used over intrinsics as the intrinsics have trouble efficiently using the vstX and vldX instructions. Change-Id: I5b67fc87acb2433b503e658099b742d57a9cff18 Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
* | Fix inplaceRgbConversion test on non-x86Allan Sandfeld Jensen2015-11-261-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | We test that inline conversion between same image depths always succeed inline, but that requires that any direct conversions exists both in non-inline and inline versions. This patch adds a non-sse2 inline conversion from ARGB32 to ARGB32PM which was missing. Change-Id: I71937cd4b77fb41fe2064da937f6dcbf2a6534e6 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Get rid of QT_USE_BUNDLED_LIBPNGKonstantin Ritt2015-11-231-5/+0
| | | | | | | | | | | | | | | | | | In fact, this is an extra info no one ever cares about. We already have properly configured INCLUDEPATH to look for png.h. Change-Id: I27fec4d474570683c6c371dff34472a7c650fe65 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Make the ppm image handler corrctly handle long comment linesEirik Aavitsland2015-11-191-4/+12
| | | | | | | | | | | | | | | | | | The ppm decoder used a fixed size buffer to discard comment lines, which would fail for comments longer than 100 characters. Task-number: QTBUG-49414 Change-Id: I92e910e025cf7584a6ff1c0e5b0e8a4ab281d479 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-11-171-0/+4
|\| | | | | | | Change-Id: I6b1fe0c6c360a0d5285911869f0f4f93d86d822e
| * Fix QImage::setDotsPerMeterX/Y for images with some orientationsJoni Poikelin2015-11-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | Rotation of images with orientation of 90 and 270 degrees dropped DPM values from rotated image. Task-number: QTBUG-49220 Change-Id: I9c23153c49dd63b5f6958fdde72f466873b0a407 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
* | Introduce png_dependency.priKonstantin Ritt2015-11-131-6/+1
| | | | | | | | | | | | | | | | | | Just like any other x_dependency.pri, it shall be included instead of linking with png lib directly. Change-Id: I698c8a8137f937d2e2c5f5dc9b9188b780c9e49a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Make qt_findAtNxFile return the source device pixel ratioOlivier Goffart2015-11-132-3/+11
| | | | | | | | | | | | | | | | QTextImageHandler needs it. And QQuickImageBase will also need it. Change-Id: Ica5d17519c4c6c06e25bab7d2b1d3733f4058425 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | Prevent the pixmap cache from crashing if it's been destroyedThiago Macieira2015-10-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case the static destructor has already been run, make sure we don't crash. This shouldn't happen, but could happen if the QApplication destructor is run in a weird order (after the static destructors have begun running). That's not usually a case we'd fix (unsupported), but since this change improves the code and also avoids creating the pixmap cache if it hadn't been used up until this point, the change is a net benefit. Task-number: QTBUG-48709 Change-Id: Ia505aece07bf4e13a1faffff140f3e119cfc773e Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Add support for "@3x" image loading.Morten Johan Sørvig2015-10-162-11/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement as generic "@Nx" support in an exported qt_findAtNxFile function. 3x devices now get one extra file existence test in cases where @3x versions are not present. 1x devices are still on the fast path where there are no extra file system accesses. Add an @3x image to the highdpi manual test. Change-Id: I4ce3fc245ada01ea410abe1443ceb1e3abf7c17f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* | qt_pixmapFromWinHICON(): Fix crash and leak in case of Win32 API fails.Friedemann Kleint2015-10-141-12/+16
| | | | | | | | | | | | | | | | | | Release the DC and move alpha-checking into separate function to prevent it from using invalid width/height. Task-number: QTBUG-48732 Change-Id: Iaf7cfa89b0f702f5012b0451d24a9e887d832c59 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6Liang Qi2015-10-022-2/+3
|\ \
| * | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-022-2/+3
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/doc/src/qmake-manual.qdoc src/corelib/tools/qstring.h src/gui/image/qimagereader.cpp src/network/access/qnetworkaccessmanager.cpp src/tools/qdoc/doc/examples/examples.qdoc src/widgets/accessible/qaccessiblewidgetfactory_p.h src/widgets/doc/qtwidgets.qdocconf Change-Id: I8fae62283aebefe24e5ca4b4abd97386560c0fcb
| | * Doc: Corrected link issues in qtbaseNico Vertriest2015-09-042-2/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-43810 Change-Id: I0a019becc53b222cb6a7df1fafdccd57aca5b598 Reviewed-by: Martin Smith <martin.smith@digia.com>
| | * PPM image format: avoid useless processing on truncated filesEirik Aavitsland2015-09-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For ascii formatted files, the handler would not stop processing on a premature EOF, but instead continue to fill the whole image memory area byte by byte. This could lead to unexpected CPU exhaustion in the case of a small image file declaring huge image dimensions, but having no content. Instead, check for EOF for each scanline and quit processing if found. Change-Id: I8dbcd7eb34553873e49706d61b5752f22e04eb6a Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | | Doc: Update obsolete URLs to external documentationTopi Reinio2015-10-021-1/+1
|/ / | | | | | | | | | | | | Change-Id: I199de83971701c14e903e712fcdcd29aaff95c6d Task-number: QTBUG-48420 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Work around GCC thinking that a variable could be clobbered by longjmpThiago Macieira2015-09-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | It can't be. The block in which the variable "s" exists makes no call to any function that takes the setjmp buffer. This is not a false positive warning: it's an incorrect warning. qjpeghandler.cpp:878:6: error: variable ‘s’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered] Change-Id: I42e7ef1a481840699a8dffff140681a3d7e34493 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Doc: fixed links to qmake documentationNico Vertriest2015-09-251-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-43810 Change-Id: I56676d6f6f95ed79bd1719404b4e48c26490eea6 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Fix build error with ICC 16 on WindowsThiago Macieira2015-09-212-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | This is a repeat of acf80b9a2b913e898ed4c4ed14d4ea79401484fe, but this time it appears ICC 15 works and ICC 16 doesn't. ICC doesn't like polymorphic, exported classes with inline constructors. qsvgiconengine.obj : error LNK2001: unresolved external symbol "const QIconEngine::`vftable'" (??_7QIconEngine@@6B@) Task-number: QTBUG-48062 Change-Id: I82493c0f52084e0588352cd0c26e1293b0727242 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QImage: Inline constScanLine call in pixel()Ulf Hermann2015-09-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Calling constScanLine() is an extra function call, just for doing "data + y * width". Also, we are checking d again, even though we already know it's there. The constScanLine() call is responsible for up to 15% of the total CPU time spent in pixel(). Change-Id: Ia7a8e0a6d62fb257d1b22d91f062b66e9cfd349a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | QImage: Use d->height directly for checking dimensions on pixel()Ulf Hermann2015-09-111-1/+1
| | | | | | | | | | | | | | | | | | Calling height() causes an additional function call and check for d which sums up to more than 25% of the total CPU cost of pixel() if the format is simple. Change-Id: I449a3a17dc031e607e40dc1577a5553e7490de76 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-08-262-6/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/doc/snippets/code/doc_src_qmake-manual.pro qmake/doc/src/qmake-manual.qdoc src/corelib/io/qstorageinfo_unix.cpp src/corelib/tools/qbytearray.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/io/qprocess/tst_qprocess.cpp tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp tests/auto/network/access/qnetworkreply/BLACKLIST Change-Id: I9efcd7e1cce1c394eed425c43aa6fce7d2edf31c
| * Fix regression in reading certain compressed bmp imagesAndy Shaw2015-08-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | For BITFIELDS compressed images, the image data may be preceded by bitmask fields. The file positioning code that should make sure those were read correctly was erroneously included in the block of code that was moved in 6f1b82fccdaf202856dcc6510c16b0531680fe23. Task-number: QTBUG-45559 Task-number: QTBUG-40890 Done-with: Eirik Aavitsland Change-Id: Id2b3ce078f67ac6ebf75ab0cc463dc719af83393 Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
| * Always return grayscale indexed8 from QImage::alphaChannel()Allan Sandfeld Jensen2015-08-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | We shouldn't short-cut alpha8 formats in alphaChannel, the method is used under the assumption that the returned alpha map has encoded the alphas as an indexed grayscale image. The method is also documented as not returning alpha8. Task-number: QTBUG-47138 Change-Id: I1cf16957d12e65d44f2b586d9f127fcb33c549b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Merge remote-tracking branch 'origin/5.5' into devFrederik Gladhorn2015-08-066-5/+28
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/global/qt-cpp-defines.qdocconf src/3rdparty/forkfd/forkfd.c src/corelib/codecs/qtextcodec.cpp src/corelib/kernel/qmetatype.cpp src/corelib/tools/qset.qdoc src/gui/accessible/qaccessible.cpp src/gui/image/qpixmapcache.cpp src/opengl/qgl.cpp src/tools/qdoc/generator.cpp src/widgets/kernel/qwidget.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
| * fix build with no built-in image handlersOswald Buddenhagen2015-08-033-3/+0
| | | | | | | | | | | | | | | | | | | | the handlers' .pri files added $$PWD to INCLUDEPATH to make the files self-contained when used externally, but this polluted the include path of the gui module itself, thus hiding incorrect use of QPA includes. Task-number: QTBUG-47400 Change-Id: I576469a71e8ded0b409d62687999c0fa884613f9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
| * Doc: Add a \target for license information within QImage documentationTopi Reinio2015-07-311-2/+3
| | | | | | | | | | | | | | | | | | | | | | This allows us to link to it from the Qt licensing information page. Also, replace the \legalese command with \badcode in order to keep the license text formatting intact. Task-number: QTBUG-46478 Change-Id: I1b5100ca0373a533bd56852ab2a8f18e72404334 Reviewed-by: Sami Makkonen <sami.makkonen@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
| * Doc:added doc to undocumented functionsNico Vertriest2015-07-223-0/+25
| | | | | | | | | | | | Task-number: QTBUG-36985 Change-Id: Ic358682b276d67ef804f727bcf14191718613469 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Enable non-integer device pixel ratioMorten Johan Sørvig2015-07-304-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Work around QPaintDevice::metric's int return type by adding a new metric that returns a scaled devicePixelRatio. Choose a scale factor that gives us more than enough range. The QPaintDevice::devicePixelRatio() convenience accessor is public API and can unfortunately not be changed to return a qreal. Add devicePixelRatioF() which returns the (unscaled) devicePixelRatio. Change all call sites of QPaintDevice::devicePixelRatio() to use QPainDevice::devicePixelRatioF(). Task-number: QTBUG-46615 Change-Id: I97ec4000fe379b7ff5e1624a871ae2512790aad9 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | QIconLoader: don't make QIconDirInfo::type a bit-fieldMarc Mutz2015-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't save any space, is not required for ABI compat (because it's private API), generates more code to extract the field, and triggers a bug in older GCCs when synthesizing a move constructor for this type: src/gui/image/qiconloader_p.h:64:8: error: invalid conversion from 'unsigned char:4' to 'QIconDirInfo::Type' [-fpermissive] src/corelib/tools/qvector.h:641:13: note: synthesized method 'QIconDirInfo& QIconDirInfo::operator=(QIconDirInfo&&)' first required here Change-Id: I61e886566b67c7a18a318a3d026dc762600f8ab4 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QtGui: Use Q_NULLPTR instead of 0 in all public headersMarc Mutz2015-07-198-31/+31
| | | | | | | | | | | | | | | | | | This is in preparation of adding -Wzero-as-null-pointer-constant (or similar) to the headers check. Task-number: QTBUG-45291 Change-Id: I72ab40b21a9499b53a639564fa45884de17b6c98 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Mark QPixmapCache::Key as shared for Qt 6.Marc Mutz2015-07-181-0/+1
| | | | | | | | | | Change-Id: I37819cfd8a56d364336640146dbead2e1a454787 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.5' into HEADSimon Hausmann2015-07-172-3/+4
|\| | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowsopengltester.cpp Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
| * Fix compile error on big endianAllan Sandfeld Jensen2015-07-081-1/+1
| | | | | | | | | | | | | | | | | | DestFormat is not defined here but should be Format_RGBX8888 Change-Id: Ie33989a6fc31650434281a6b7b0f4806524268af Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Fix memory leak in QJpegHandlerPrivateJian Liang2015-07-061-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of jpeg auto transform, it is possible to read jpeg header after its state was changed from ReadHeaer to Ready which will lead to creating some resources again without releasing them. For example, if you call QImageReader::setAutoTransform(true) and then call QImageReader::read(), QJpegHandlerPrivate::readJpegHeader() will be called twice and it will allocate resource again without releasing the old one. This patch add a new state ReadingEnd to prevent the header from being read twice. Change-Id: If2497f6e3668958c0c792a66e1b77eb2773584a2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | QImageIOHandler: don't create QLists just to count their elementsMarc Mutz2015-07-132-4/+4
| | | | | | | | | | | | | | | | | | | | | | Q(Multi)Map::keys() returns duplicated keys, so keys().size() will always be the same as the map's size(). So use that directly instead of creating temporary QLists to check the size. Change-Id: I0600d1845e25be3b825e4ae470c1ef41a3a5d2c9 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>