From 1aab68648d3aa38811be38b5bbd3a0704e17ccf8 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 10 Apr 2015 08:46:37 +0200 Subject: Speed up compose file parsing in the X11 composition input method plugin There's no need to decode the string until the end of the line, it's sufficient to stop at the end of the quotes. Change-Id: Ie617d2538511e91d0e0146f98b7e5ea3213b8db2 Reviewed-by: Lars Knoll --- src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/plugins/platforminputcontexts/compose/generator') diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp index 4784a6e828..120b228f79 100644 --- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp @@ -399,7 +399,7 @@ void TableGenerator::parseKeySequence(char *line) // handle direct text encoded in the locale if (*composeValue == '\\') ++composeValue; - elem.value = QString::fromLocal8Bit(composeValue).at(0).unicode(); + elem.value = QString::fromLocal8Bit(composeValue, composeValueEnd - composeValue).at(0).unicode(); ++composeValue; } -- cgit v1.2.3 From 365c63e7b177701c0bf80a7cb138b7559b92f350 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 14 Apr 2015 14:00:05 +0200 Subject: Fix regression in compose table parsing Performance optimization from 1aab68648 revealed that "composeValueEnd" needs adjustment for compose sequences that result in a quotation mark, for example: : "\"" quotedbl # REVERSE SOLIDUS Change-Id: I66bf83fbe62727f1ee245aae90f8d0eb53dea6d4 Task-number: QTBUG-45538 Reviewed-by: Simon Hausmann --- .../platforminputcontexts/compose/generator/qtablegenerator.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/plugins/platforminputcontexts/compose/generator') diff --git a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp index 120b228f79..65020eb848 100644 --- a/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp +++ b/src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp @@ -385,6 +385,10 @@ void TableGenerator::parseKeySequence(char *line) if (!composeValueEnd) return; + // if composed value is a quotation mark adjust the end pointer + if (composeValueEnd[1] == '"') + ++composeValueEnd; + if (*composeValue == '\\' && composeValue[1] >= '0' && composeValue[1] <= '9') { // handle octal and hex code values char detectBase = composeValue[2]; -- cgit v1.2.3