From ea4d7711b6624d57676dfbcd68ef9e2dd45b7514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Ker=C3=A4nen?= <pasi.keranen@digia.com> Date: Fri, 8 May 2015 12:53:31 +0300 Subject: [PATCH] Optimization of isOfType method. According to profiling the isOfType method used a lot of extra time converting the classname attribute from const char to QString and back to const char. This task fixes the attribute to be of type const char to begin with, reducing the CPU usage of isOfType significantly. Change-Id: Id4879c376701d2baf4fa28ca39e9fcc1c3c0b5d6 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> --- src/imports/qtcanvas3d/context3d.cpp | 4 ++-- src/imports/qtcanvas3d/context3d_p.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/imports/qtcanvas3d/context3d.cpp b/src/imports/qtcanvas3d/context3d.cpp index b3a99b4..0b15a55 100644 --- a/src/imports/qtcanvas3d/context3d.cpp +++ b/src/imports/qtcanvas3d/context3d.cpp @@ -6120,7 +6120,7 @@ QVariantList CanvasContext::getSupportedExtensions() /*! * \internal */ -bool CanvasContext::isOfType(const QJSValue &value, const QString &classname) const +bool CanvasContext::isOfType(const QJSValue &value, const char *classname) const { if (!value.isQObject()) { return false; @@ -6131,7 +6131,7 @@ bool CanvasContext::isOfType(const QJSValue &value, const QString &classname) co if (!obj) return false; - if (!obj->inherits(classname.toLocal8Bit().constData())) { + if (!obj->inherits(classname)) { return false; } diff --git a/src/imports/qtcanvas3d/context3d_p.h b/src/imports/qtcanvas3d/context3d_p.h index 37b021e..d34ca39 100644 --- a/src/imports/qtcanvas3d/context3d_p.h +++ b/src/imports/qtcanvas3d/context3d_p.h @@ -1225,7 +1225,7 @@ private: uchar *unpackPixels(uchar *srcData, bool useSrcDataAsDst, int bytesPerPixel, int width, int height); - bool isOfType(const QJSValue &value, const QString &classname) const; + bool isOfType(const QJSValue &value, const char *classname) const; bool isValidTextureBound(glEnums target, const QString &funcName); bool checkParent(QObject *jsObj, const char *function); -- GitLab