diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2023-09-29 11:47:33 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2023-09-29 20:49:53 +0200 |
commit | 02c4c817fe1cfa4766c56759be99fb081382a586 (patch) | |
tree | 933855709b1a6fd1f4c65839b10cf12297579db1 /src/qml/jsruntime/qv4jscall_p.h | |
parent | fa2b22a7a12477118f6886dbfa95844d3fd4e19e (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.h | 2 |
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 } |