From fd8ced2fda546a4b5ef735a06cac42d1f989c1ae Mon Sep 17 00:00:00 2001 From: Ariya Hidayat Date: Mon, 31 Aug 2009 14:31:16 +0200 Subject: Group the stroke attributes for 3.5% speed-up in QSvgAttributes. Reviewed-by: Kim --- src/svg/qsvghandler.cpp | 70 +++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp index b8266f7..c06a1d4 100644 --- a/src/svg/qsvghandler.cpp +++ b/src/svg/qsvghandler.cpp @@ -179,22 +179,25 @@ QSvgAttributes::QSvgAttributes(const QXmlStreamAttributes &xmlAttributes, QSvgHa break; case 's': - if (name == QLatin1String("stroke")) - stroke = value; - else if (name == QLatin1String("stroke-dasharray")) - strokeDashArray = value; - else if (name == QLatin1String("stroke-dashoffset")) - strokeDashOffset = value; - else if (name == QLatin1String("stroke-linecap")) - strokeLineCap = value; - else if (name == QLatin1String("stroke-linejoin")) - strokeLineJoin = value; - else if (name == QLatin1String("stroke-miterlimit")) - strokeMiterLimit = value; - else if (name == QLatin1String("stroke-opacity")) - strokeOpacity = value; - else if (name == QLatin1String("stroke-width")) - strokeWidth = value; + if (name.length() > 5 && QStringRef(name.string(), name.position() + 1, 5) == QLatin1String("troke")) { + QStringRef strokeRef(name.string(), name.position() + 6, name.length() - 6); + if (name.isEmpty()) + stroke = value; + else if (name == QLatin1String("-dasharray")) + strokeDashArray = value; + else if (name == QLatin1String("-dashoffset")) + strokeDashOffset = value; + else if (name == QLatin1String("-linecap")) + strokeLineCap = value; + else if (name == QLatin1String("-linejoin")) + strokeLineJoin = value; + else if (name == QLatin1String("-miterlimit")) + strokeMiterLimit = value; + else if (name == QLatin1String("-opacity")) + strokeOpacity = value; + else if (name == QLatin1String("-width")) + strokeWidth = value; + } else if (name == QLatin1String("stop-color")) stopColor = value; else if (name == QLatin1String("stop-opacity")) @@ -271,22 +274,25 @@ QSvgAttributes::QSvgAttributes(const QXmlStreamAttributes &xmlAttributes, QSvgHa break; case 's': - if (name == QLatin1String("stroke")) - stroke = value; - else if (name == QLatin1String("stroke-dasharray")) - strokeDashArray = value; - else if (name == QLatin1String("stroke-dashoffset")) - strokeDashOffset = value; - else if (name == QLatin1String("stroke-linecap")) - strokeLineCap = value; - else if (name == QLatin1String("stroke-linejoin")) - strokeLineJoin = value; - else if (name == QLatin1String("stroke-miterlimit")) - strokeMiterLimit = value; - else if (name == QLatin1String("stroke-opacity")) - strokeOpacity = value; - else if (name == QLatin1String("stroke-width")) - strokeWidth = value; + if (name.length() > 5 && QStringRef(name.string(), name.position() + 1, 5) == QLatin1String("troke")) { + QStringRef strokeRef(name.string(), name.position() + 6, name.length() - 6); + if (name.isEmpty()) + stroke = value; + else if (name == QLatin1String("-dasharray")) + strokeDashArray = value; + else if (name == QLatin1String("-dashoffset")) + strokeDashOffset = value; + else if (name == QLatin1String("-linecap")) + strokeLineCap = value; + else if (name == QLatin1String("-linejoin")) + strokeLineJoin = value; + else if (name == QLatin1String("-miterlimit")) + strokeMiterLimit = value; + else if (name == QLatin1String("-opacity")) + strokeOpacity = value; + else if (name == QLatin1String("-width")) + strokeWidth = value; + } else if (name == QLatin1String("stop-color")) stopColor = value; else if (name == QLatin1String("stop-opacity")) -- cgit v0.12