From 679326523dbf193b00cb410b828de4637b47c287 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 30 Nov 2020 17:04:49 +0100 Subject: shiboken6: Use initializer list for operator mapping in doc generator Complements 28aa3c4f6605a6331b12f47e03a9aba4aaefe201. Change-Id: I8194dccd94dc4a6fbac11a874fd18b60f7aa1533 Reviewed-by: Cristian Maureira-Fredes --- .../shiboken6/generator/qtdoc/qtdocgenerator.cpp | 70 +++++++++++----------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp index 3e61b3e99..8aea707fa 100644 --- a/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp +++ b/sources/shiboken6/generator/qtdoc/qtdocgenerator.cpp @@ -107,41 +107,43 @@ static inline QVersionNumber versionOf(const TypeEntry *te) return QVersionNumber(); } -static QString getFuncName(const AbstractMetaFunctionCPtr& cppFunc) { - static bool hashInitialized = false; - static QHash operatorsHash; - if (!hashInitialized) { - operatorsHash.insert(QLatin1String("operator+"), QLatin1String("__add__")); - operatorsHash.insert(QLatin1String("operator+="), QLatin1String("__iadd__")); - operatorsHash.insert(QLatin1String("operator-"), QLatin1String("__sub__")); - operatorsHash.insert(QLatin1String("operator-="), QLatin1String("__isub__")); - operatorsHash.insert(QLatin1String("operator*"), QLatin1String("__mul__")); - operatorsHash.insert(QLatin1String("operator*="), QLatin1String("__imul__")); - operatorsHash.insert(QLatin1String("operator/"), QLatin1String("__div__")); - operatorsHash.insert(QLatin1String("operator/="), QLatin1String("__idiv__")); - operatorsHash.insert(QLatin1String("operator%"), QLatin1String("__mod__")); - operatorsHash.insert(QLatin1String("operator%="), QLatin1String("__imod__")); - operatorsHash.insert(QLatin1String("operator<<"), QLatin1String("__lshift__")); - operatorsHash.insert(QLatin1String("operator<<="), QLatin1String("__ilshift__")); - operatorsHash.insert(QLatin1String("operator>>"), QLatin1String("__rshift__")); - operatorsHash.insert(QLatin1String("operator>>="), QLatin1String("__irshift__")); - operatorsHash.insert(QLatin1String("operator&"), QLatin1String("__and__")); - operatorsHash.insert(QLatin1String("operator&="), QLatin1String("__iand__")); - operatorsHash.insert(QLatin1String("operator|"), QLatin1String("__or__")); - operatorsHash.insert(QLatin1String("operator|="), QLatin1String("__ior__")); - operatorsHash.insert(QLatin1String("operator^"), QLatin1String("__xor__")); - operatorsHash.insert(QLatin1String("operator^="), QLatin1String("__ixor__")); - operatorsHash.insert(QLatin1String("operator=="), QLatin1String("__eq__")); - operatorsHash.insert(QLatin1String("operator!="), QLatin1String("__ne__")); - operatorsHash.insert(QLatin1String("operator<"), QLatin1String("__lt__")); - operatorsHash.insert(QLatin1String("operator<="), QLatin1String("__le__")); - operatorsHash.insert(QLatin1String("operator>"), QLatin1String("__gt__")); - operatorsHash.insert(QLatin1String("operator>="), QLatin1String("__ge__")); - hashInitialized = true; - } +static const QHash &operatorMapping() +{ + static const QHash result = { + {QLatin1String("operator+"), QLatin1String("__add__")}, + {QLatin1String("operator+="), QLatin1String("__iadd__")}, + {QLatin1String("operator-"), QLatin1String("__sub__")}, + {QLatin1String("operator-="), QLatin1String("__isub__")}, + {QLatin1String("operator*"), QLatin1String("__mul__")}, + {QLatin1String("operator*="), QLatin1String("__imul__")}, + {QLatin1String("operator/"), QLatin1String("__div__")}, + {QLatin1String("operator/="), QLatin1String("__idiv__")}, + {QLatin1String("operator%"), QLatin1String("__mod__")}, + {QLatin1String("operator%="), QLatin1String("__imod__")}, + {QLatin1String("operator<<"), QLatin1String("__lshift__")}, + {QLatin1String("operator<<="), QLatin1String("__ilshift__")}, + {QLatin1String("operator>>"), QLatin1String("__rshift__")}, + {QLatin1String("operator>>="), QLatin1String("__irshift__")}, + {QLatin1String("operator&"), QLatin1String("__and__")}, + {QLatin1String("operator&="), QLatin1String("__iand__")}, + {QLatin1String("operator|"), QLatin1String("__or__")}, + {QLatin1String("operator|="), QLatin1String("__ior__")}, + {QLatin1String("operator^"), QLatin1String("__xor__")}, + {QLatin1String("operator^="), QLatin1String("__ixor__")}, + {QLatin1String("operator=="), QLatin1String("__eq__")}, + {QLatin1String("operator!="), QLatin1String("__ne__")}, + {QLatin1String("operator<"), QLatin1String("__lt__")}, + {QLatin1String("operator<="), QLatin1String("__le__")}, + {QLatin1String("operator>"), QLatin1String("__gt__")}, + {QLatin1String("operator>="), QLatin1String("__ge__")}, + }; + return result; +} - QHash::const_iterator it = operatorsHash.constFind(cppFunc->name()); - QString result = it != operatorsHash.cend() ? it.value() : cppFunc->name(); +static QString getFuncName(const AbstractMetaFunctionCPtr& cppFunc) +{ + const auto it = operatorMapping().constFind(cppFunc->name()); + QString result = it != operatorMapping().cend() ? it.value() : cppFunc->name(); result.replace(QLatin1String("::"), QLatin1String(".")); return result; } -- cgit v1.2.3