summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Rauter <matthias.rauter@qt.io>2023-11-16 15:23:50 +0100
committerMatthias Rauter <matthias.rauter@qt.io>2024-05-13 09:15:58 +0200
commit9d189e7ccd4156180edaf9153559fb75dbfc5412 (patch)
treec32ca68c2ee2b0941c09192129081c7d4a32af1f
parentc6fe4261bdaa4f47f779e3ef0e4de89ca80d2be7 (diff)
Remove autogenerated code to recognize supported features
This function is rarely called so the performance improvement from the autogenerated code is not worth the difficult to maintain code. Change-Id: I825e41180577d0245d41a13761d5823ef54941fe Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
-rw-r--r--src/svg/qsvgstructure.cpp165
1 files changed, 22 insertions, 143 deletions
diff --git a/src/svg/qsvgstructure.cpp b/src/svg/qsvgstructure.cpp
index b729fa8..93f2f91 100644
--- a/src/svg/qsvgstructure.cpp
+++ b/src/svg/qsvgstructure.cpp
@@ -448,156 +448,35 @@ QSvgNode::Type QSvgFilterContainer::type() const
return Filter;
}
-/*
- Below is a lookup function based on the gperf output using the following set:
-
- http://www.w3.org/Graphics/SVG/feature/1.2/#SVG
- http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static
- http://www.w3.org/Graphics/SVG/feature/1.2/#CoreAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#Structure
- http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessing
- http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessingAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#Image
- http://www.w3.org/Graphics/SVG/feature/1.2/#Prefetch
- http://www.w3.org/Graphics/SVG/feature/1.2/#Shape
- http://www.w3.org/Graphics/SVG/feature/1.2/#Text
- http://www.w3.org/Graphics/SVG/feature/1.2/#PaintAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#OpacityAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#GraphicsAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#Gradient
- http://www.w3.org/Graphics/SVG/feature/1.2/#SolidColor
- http://www.w3.org/Graphics/SVG/feature/1.2/#XlinkAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#ExternalResourcesRequiredAttribute
- http://www.w3.org/Graphics/SVG/feature/1.2/#Font
- http://www.w3.org/Graphics/SVG/feature/1.2/#Hyperlinking
- http://www.w3.org/Graphics/SVG/feature/1.2/#Extensibility
-*/
-
-// ----- begin of generated code -----
-
-/* C code produced by gperf version 3.0.2 */
-/* Command-line: gperf -c -L c svg */
-/* Computed positions: -k'45-46' */
-
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
-/* The character set is not based on ISO-646. */
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
-#endif
-
-enum {
- TOTAL_KEYWORDS = 20,
- MIN_WORD_LENGTH = 47,
- MAX_WORD_LENGTH = 78,
- MIN_HASH_VALUE = 48,
- MAX_HASH_VALUE = 88
-};
-/* maximum key range = 41, duplicates = 0 */
inline static bool isSupportedSvgFeature(const QString &str)
{
- static const unsigned char asso_values[] = {
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 0, 89, 5,
- 15, 5, 0, 10, 89, 89, 89, 89, 89, 0,
- 15, 89, 89, 0, 0, 89, 5, 89, 0, 89,
- 89, 89, 89, 89, 89, 89, 89, 0, 89, 89,
- 89, 0, 89, 89, 0, 89, 89, 89, 0, 5,
- 89, 0, 0, 89, 5, 89, 0, 89, 89, 89,
- 5, 0, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89
+ static const QStringList wordList = {
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Text"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Shape"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#SVG"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Structure"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#SolidColor"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Hyperlinking"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#CoreAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#XlinkAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#OpacityAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Gradient"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Font"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Image"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessing"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Extensibility"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#GraphicsAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#Prefetch"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#PaintAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessingAttribute"),
+ QStringLiteral("http://www.w3.org/Graphics/SVG/feature/1.2/#ExternalResourcesRequiredAttribute")
};
- static const char * wordlist[] = {
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "", "", "", "", "", "",
- "", "", "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Text",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Shape",
- "", "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#SVG",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Structure",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#SolidColor",
- "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Hyperlinking",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#CoreAttribute",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#XlinkAttribute",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#OpacityAttribute",
- "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Gradient",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Font",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Image",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessing",
- "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Extensibility",
- "", "", "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#GraphicsAttribute",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#Prefetch",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#PaintAttribute",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#ConditionalProcessingAttribute",
- "", "", "", "", "", "", "", "", "",
- "", "", "", "",
- "http://www.w3.org/Graphics/SVG/feature/1.2/#ExternalResourcesRequiredAttribute"
- };
-
- if (str.size() <= MAX_WORD_LENGTH && str.size() >= MIN_WORD_LENGTH) {
- const char16_t unicode44 = str.at(44).unicode();
- const char16_t unicode45 = str.at(45).unicode();
- if (unicode44 >= sizeof(asso_values) || unicode45 >= sizeof(asso_values))
- return false;
- const int key = str.size()
- + asso_values[unicode45]
- + asso_values[unicode44];
- if (key <= MAX_HASH_VALUE && key >= 0)
- return str == QLatin1String(wordlist[key]);
- }
- return false;
+ return wordList.contains(str);
}
-// ----- end of generated code -----
-
static inline bool isSupportedSvgExtension(const QString &)
{
return false;