aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4jscall_p.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2023-09-29 11:47:33 +0200
committerUlf Hermann <ulf.hermann@qt.io>2023-09-29 20:49:53 +0200
commit02c4c817fe1cfa4766c56759be99fb081382a586 (patch)
tree933855709b1a6fd1f4c65839b10cf12297579db1 /src/qml/jsruntime/qv4jscall_p.h
parentfa2b22a7a12477118f6886dbfa95844d3fd4e19e (diff)
QtQml: Construct return type before metaCall
The metacall expects initialized memory. Let's give it what it wants. Fixes: QTBUG-117672 Change-Id: If139029ac4771ac919c5f09728633546e7bb9d1e Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4jscall_p.h')
-rw-r--r--src/qml/jsruntime/qv4jscall_p.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4jscall_p.h b/src/qml/jsruntime/qv4jscall_p.h
index f49b5a4a47..82a83fd06f 100644
--- a/src/qml/jsruntime/qv4jscall_p.h
+++ b/src/qml/jsruntime/qv4jscall_p.h
@@ -485,6 +485,8 @@ void coerceAndCall(
} else if (returnType.sizeOf() > 0) {
Q_ALLOCA_ASSIGN(void, transformedResult, returnType.sizeOf());
transformedArguments[0] = transformedResult;
+ if (returnType.flags() & QMetaType::NeedsConstruction)
+ returnType.construct(transformedResult);
} else {
transformedResult = transformedArguments[0] = &argc; // Some non-null marker value
}