diff --git a/src/blackmisc/aviation/aircrafticaocode.cpp b/src/blackmisc/aviation/aircrafticaocode.cpp index 0c5f9b7a8..b192faf43 100644 --- a/src/blackmisc/aviation/aircrafticaocode.cpp +++ b/src/blackmisc/aviation/aircrafticaocode.cpp @@ -150,15 +150,21 @@ namespace BlackMisc bool CAircraftIcaoCode::isValidDesignator(const QString &designator) { - static const QRegularExpression regexp("^[A-Z]+[A-Z0-9]*$"); if (designator.length() < 2 || designator.length() > 5) { return false; } + + static QThreadStorage tsRegex; + if (! tsRegex.hasLocalData()) { tsRegex.setLocalData(QRegularExpression("^[A-Z]+[A-Z0-9]*$")); } + const QRegularExpression ®exp = tsRegex.localData(); return (regexp.match(designator).hasMatch()); } bool CAircraftIcaoCode::isValidCombinedType(const QString &combinedType) { - static const QRegularExpression regexp("^[A-Z][0-9][A-Z]$"); - if (combinedType.length() != 3) return false; + if (combinedType.length() != 3) { return false; } + + static QThreadStorage tsRegex; + if (! tsRegex.hasLocalData()) { tsRegex.setLocalData(QRegularExpression("^[A-Z][0-9][A-Z]$")); } + const QRegularExpression ®exp = tsRegex.localData(); return (regexp.match(combinedType).hasMatch()); } diff --git a/src/blackmisc/aviation/airlineicaocode.cpp b/src/blackmisc/aviation/airlineicaocode.cpp index b992d1d6f..56b637646 100644 --- a/src/blackmisc/aviation/airlineicaocode.cpp +++ b/src/blackmisc/aviation/airlineicaocode.cpp @@ -106,8 +106,11 @@ namespace BlackMisc bool CAirlineIcaoCode::isValidAirlineDesignator(const QString &airline) { - static QRegularExpression regexp("^[A-Z]+[A-Z0-9]*$"); if (airline.length() < 2 || airline.length() > 5) return false; + + static QThreadStorage tsRegex; + if (! tsRegex.hasLocalData()) { tsRegex.setLocalData(QRegularExpression("^[A-Z]+[A-Z0-9]*$")); } + const QRegularExpression ®exp = tsRegex.localData(); return (regexp.match(airline).hasMatch()); } diff --git a/src/blackmisc/aviation/callsign.cpp b/src/blackmisc/aviation/callsign.cpp index 73fd4c572..f3d7cccb1 100644 --- a/src/blackmisc/aviation/callsign.cpp +++ b/src/blackmisc/aviation/callsign.cpp @@ -168,8 +168,11 @@ namespace BlackMisc bool CCallsign::isValidCallsign(const QString &callsign) { // We allow all number callsigns - static QRegularExpression regexp("^[A-Z0-9]*$"); if (callsign.length() < 2 || callsign.length() > 10) { return false; } + + static QThreadStorage tsRegex; + if (! tsRegex.hasLocalData()) { tsRegex.setLocalData(QRegularExpression("^[A-Z0-9]*$")); } + const QRegularExpression ®exp = tsRegex.localData(); return (regexp.match(callsign).hasMatch()); }