diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2025-08-27 11:37:51 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2025-09-01 19:25:20 +0200 |
| commit | 68e35325165378a01bdf8ffddbe7450dbc6ebaba (patch) | |
| tree | ca49a473df821be8b6a16388b33882cc9a282536 /src/qml/jsruntime/qv4sequenceobject.cpp | |
| parent | 76dccf589d932f04af0faf00613a1951ac0dbd3b (diff) | |
QtQml: Factor out Sequence's variant data creation
We want to use it in other places.
Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I720c4a71144ab634d70a1ec0115ca81b8030d083
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4sequenceobject.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4sequenceobject.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/qml/jsruntime/qv4sequenceobject.cpp b/src/qml/jsruntime/qv4sequenceobject.cpp index 89d4504967..201d1580e0 100644 --- a/src/qml/jsruntime/qv4sequenceobject.cpp +++ b/src/qml/jsruntime/qv4sequenceobject.cpp @@ -42,6 +42,14 @@ static ReturnedValue doGetIndexed(const Sequence *s, qsizetype index) { return v->asReturnedValue(); } +static void *createVariantData(QMetaType type, QVariant *variant) +{ + if (type == QMetaType::fromType<QVariant>()) + return variant; + *variant = QVariant(type); + return variant->data(); +} + // helper function to generate valid warnings if errors occur during sequence operations. static void generateWarning(QV4::ExecutionEngine *v4, const QString& description) { @@ -205,16 +213,8 @@ QVariant Sequence::shift() const QMetaType v = p->valueMetaType(); const QMetaSequence m = p->metaSequence(); - const auto variantData = [&](QVariant *variant) -> void *{ - if (v == QMetaType::fromType<QVariant>()) - return variant; - - *variant = QVariant(v); - return variant->data(); - }; - QVariant result; - void *resultData = variantData(&result); + void *resultData = createVariantData(v, &result); m.valueAtIndex(storage, 0, resultData); if (m.canRemoveValueAtBegin()) { @@ -223,7 +223,7 @@ QVariant Sequence::shift() } QVariant t; - void *tData = variantData(&t); + void *tData = createVariantData(v, &t); for (qsizetype i = 1, end = m.size(storage); i < end; ++i) { m.valueAtIndex(storage, i, tData); m.setValueAtIndex(storage, i - 1, tData); |
