diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-04-02 11:07:14 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-04-03 21:02:23 +0200 |
commit | fb3552e0d152e963d74cccc7b36f4e618638b722 (patch) | |
tree | 6f1bc18f3cc8e01387edc8c07ff5cde8993cb3a9 /src/qml/jsruntime | |
parent | cc6c5ae70b1389ed86301bbfc156628e1d3abbcd (diff) |
Remove QRegExp support from QtQml
Remove all code that supported converting between JS RegExp's and
QRegExp, as QRegExp is going away in Qt6.
Change-Id: I4863e68dd87a337d7e836d1b26c28ee3bb914e9f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 19 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4engine_p.h | 1 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4qobjectwrapper.cpp | 3 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4regexpobject.cpp | 33 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4regexpobject_p.h | 2 |
5 files changed, 3 insertions, 55 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 5edf2fdea7..d4f55f6e7f 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -1042,11 +1042,6 @@ Heap::RegExpObject *ExecutionEngine::newRegExpObject(RegExp *re) return memoryManager->allocate<RegExpObject>(re); } -Heap::RegExpObject *ExecutionEngine::newRegExpObject(const QRegExp &re) -{ - return memoryManager->allocate<RegExpObject>(re); -} - #if QT_CONFIG(regularexpression) Heap::RegExpObject *ExecutionEngine::newRegExpObject(const QRegularExpression &re) { @@ -1605,13 +1600,10 @@ static QVariant toVariant(QV4::ExecutionEngine *e, const QV4::Value &value, int QV4::ScopedObject o(scope, value); Q_ASSERT(o); - if (QV4::RegExpObject *re = o->as<QV4::RegExpObject>()) { #if QT_CONFIG(regularexpression) - if (typeHint != QMetaType::QRegExp) - return re->toQRegularExpression(); + if (QV4::RegExpObject *re = o->as<QV4::RegExpObject>()) + return re->toQRegularExpression(); #endif - return re->toQRegExp(); - } if (createJSValueForObjects) return QVariant::fromValue(QJSValuePrivate::fromReturnedValue(o->asReturnedValue())); @@ -1720,8 +1712,6 @@ QV4::ReturnedValue QV4::ExecutionEngine::fromVariant(const QVariant &variant) return QV4::Encode(newDateObject(QDateTime(*reinterpret_cast<const QDate *>(ptr), QTime(0, 0, 0), Qt::UTC))); case QMetaType::QTime: return QV4::Encode(newDateObjectFromTime(*reinterpret_cast<const QTime *>(ptr))); - case QMetaType::QRegExp: - return QV4::Encode(newRegExpObject(*reinterpret_cast<const QRegExp *>(ptr))); #if QT_CONFIG(regularexpression) case QMetaType::QRegularExpression: return QV4::Encode(newRegExpObject(*reinterpret_cast<const QRegularExpression *>(ptr))); @@ -2191,11 +2181,6 @@ bool ExecutionEngine::metaTypeFromJS(const Value &value, int type, void *data) *reinterpret_cast<QDate *>(data) = d->toQDateTime().date(); return true; } break; - case QMetaType::QRegExp: - if (const QV4::RegExpObject *r = value.as<QV4::RegExpObject>()) { - *reinterpret_cast<QRegExp *>(data) = r->toQRegExp(); - return true; - } break; #if QT_CONFIG(regularexpression) case QMetaType::QRegularExpression: if (const QV4::RegExpObject *r = value.as<QV4::RegExpObject>()) { diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index 9d734a16a0..e7ba6976e6 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -579,7 +579,6 @@ public: Heap::RegExpObject *newRegExpObject(const QString &pattern, int flags); Heap::RegExpObject *newRegExpObject(RegExp *re); - Heap::RegExpObject *newRegExpObject(const QRegExp &re); #if QT_CONFIG(regularexpression) Heap::RegExpObject *newRegExpObject(const QRegularExpression &re); #endif diff --git a/src/qml/jsruntime/qv4qobjectwrapper.cpp b/src/qml/jsruntime/qv4qobjectwrapper.cpp index 720324ea42..8c8e05dbb7 100644 --- a/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -1404,11 +1404,10 @@ static int MatchScore(const QV4::Value &actual, int conversionType) } } else if (actual.as<QV4::RegExpObject>()) { switch (conversionType) { - case QMetaType::QRegExp: #if QT_CONFIG(regularexpression) case QMetaType::QRegularExpression: -#endif return 0; +#endif default: return 10; } diff --git a/src/qml/jsruntime/qv4regexpobject.cpp b/src/qml/jsruntime/qv4regexpobject.cpp index f763237ea3..73122fbf75 100644 --- a/src/qml/jsruntime/qv4regexpobject.cpp +++ b/src/qml/jsruntime/qv4regexpobject.cpp @@ -49,7 +49,6 @@ #include "private/qlocale_tools_p.h" #include <QtCore/QDebug> -#include <QtCore/qregexp.h> #if QT_CONFIG(regularexpression) #include <QtCore/qregularexpression.h> #endif @@ -60,8 +59,6 @@ QT_BEGIN_NAMESPACE -Q_CORE_EXPORT QString qt_regexp_toCanonical(const QString &, QRegExp::PatternSyntax); - using namespace QV4; DEFINE_OBJECT_VTABLE(RegExpObject); @@ -120,27 +117,6 @@ static QString minimalPattern(const QString &pattern) return ecmaPattern; } -// Converts a QRegExp to a JS RegExp. -// The conversion is not 100% exact since ECMA regexp and QRegExp -// have different semantics/flags, but we try to do our best. -void Heap::RegExpObject::init(const QRegExp &re) -{ - Object::init(); - - // Convert the pattern to a ECMAScript pattern. - QString pattern = QT_PREPEND_NAMESPACE(qt_regexp_toCanonical)(re.pattern(), re.patternSyntax()); - if (re.isMinimal()) - pattern = minimalPattern(pattern); - - Scope scope(internalClass->engine); - Scoped<QV4::RegExpObject> o(scope, this); - - uint flags = (re.caseSensitivity() == Qt::CaseInsensitive ? CompiledData::RegExp::RegExp_IgnoreCase : CompiledData::RegExp::RegExp_NoFlags); - o->d()->value.set(scope.engine, QV4::RegExp::create(scope.engine, pattern, flags)); - - o->initProperties(); -} - #if QT_CONFIG(regularexpression) // Converts a QRegularExpression to a JS RegExp. // The conversion is not 100% exact since ECMA regexp and QRegularExpression @@ -173,15 +149,6 @@ void RegExpObject::initProperties() Q_ASSERT(value()); } -// Converts a JS RegExp to a QRegExp. -// The conversion is not 100% exact since ECMA regexp and QRegExp -// have different semantics/flags, but we try to do our best. -QRegExp RegExpObject::toQRegExp() const -{ - Qt::CaseSensitivity caseSensitivity = (value()->flags & CompiledData::RegExp::RegExp_IgnoreCase) ? Qt::CaseInsensitive : Qt::CaseSensitive; - return QRegExp(*value()->pattern, caseSensitivity, QRegExp::RegExp2); -} - #if QT_CONFIG(regularexpression) // Converts a JS RegExp to a QRegularExpression. // The conversion is not 100% exact since ECMA regexp and QRegularExpression diff --git a/src/qml/jsruntime/qv4regexpobject_p.h b/src/qml/jsruntime/qv4regexpobject_p.h index b94889e9f0..8b26d06579 100644 --- a/src/qml/jsruntime/qv4regexpobject_p.h +++ b/src/qml/jsruntime/qv4regexpobject_p.h @@ -80,7 +80,6 @@ DECLARE_HEAP_OBJECT(RegExpObject, Object) { void init(); void init(QV4::RegExp *value); - void init(const QRegExp &re); #if QT_CONFIG(regularexpression) void init(const QRegularExpression &re); #endif @@ -140,7 +139,6 @@ struct Q_QML_PRIVATE_EXPORT RegExpObject: Object { return setProperty(Index_LastIndex, Value::fromInt32(index)); } - QRegExp toQRegExp() const; #if QT_CONFIG(regularexpression) QRegularExpression toQRegularExpression() const; #endif |