aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d/qquickcanvasitem.cpp
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-10-13 14:55:56 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-10-18 11:33:13 +0000
commitdeb3f13af4ab88ea5193825212fb46313cb14eb9 (patch)
tree94d1ee029349c81d2958f9dc287e0fcca95c4435 /src/quick/items/context2d/qquickcanvasitem.cpp
parentf04c2c40fd7ee91e5cbff2ca4df0fdc30dfbbcd5 (diff)
QQuickCanvasItem: optimize mimeToType
Provide early out, if mime is not image. If mime is image, we can drop reduntant 'image/' prefix from all strings. Also we can pass type in lower register to QImage::save(), so use only lower register in this function to de-duplicate .rodata strings. Change-Id: I6365edbe3c24ae096c5b1c23e8707299a8a5d5f3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/quick/items/context2d/qquickcanvasitem.cpp')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 368a2b78d1..dcad719ef0 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -1097,18 +1097,22 @@ QImage QQuickCanvasItem::toImage(const QRectF& rect) const
static const char* mimeToType(const QString &mime)
{
- if (mime == QLatin1String("image/png"))
- return "PNG";
- else if (mime == QLatin1String("image/bmp"))
- return "BMP";
- else if (mime == QLatin1String("image/jpeg"))
- return "JPEG";
- else if (mime == QLatin1String("image/x-portable-pixmap"))
- return "PPM";
- else if (mime == QLatin1String("image/tiff"))
- return "TIFF";
- else if (mime == QLatin1String("image/xpm"))
- return "XPM";
+ const QLatin1String imagePrefix("image/");
+ if (!mime.startsWith(imagePrefix))
+ return nullptr;
+ const QStringRef mimeExt = mime.midRef(imagePrefix.size());
+ if (mimeExt == QLatin1String("png"))
+ return "png";
+ else if (mimeExt == QLatin1String("bmp"))
+ return "bmp";
+ else if (mimeExt == QLatin1String("jpeg"))
+ return "jpeg";
+ else if (mimeExt == QLatin1String("x-portable-pixmap"))
+ return "ppm";
+ else if (mimeExt == QLatin1String("tiff"))
+ return "tiff";
+ else if (mimeExt == QLatin1String("xpm"))
+ return "xpm";
return nullptr;
}