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>
This commit is contained in:
Ulf Hermann 2023-09-29 11:47:33 +02:00
parent fa2b22a7a1
commit 02c4c817fe
1 changed files with 2 additions and 0 deletions

View File

@ -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
}