summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetaobject.cpp
diff options
context:
space:
mode:
authorAurélien Brooke <aurelien@bahiasoft.fr>2025-07-15 11:58:57 +0200
committerAurélien Brooke <aurelien@bahiasoft.fr>2025-07-21 07:47:38 +0200
commitc074f4a74131b42c1af2dc081c5902bc8a7e6e8c (patch)
tree17f2e5ad73b080e7a85aec3e233f562f6bf273de /src/corelib/kernel/qmetaobject.cpp
parent1ac2386d06276dbb77ce215553f6a3d3e70f8e1f (diff)
Reduce QVarLengthArray preallocation in queued meta call
The default prealloc size of 256 is excessive for typical argument counts. Reduce the prealloc to 16 and add a reserve() in case more is needed. Amends f6211c079fa000c0d46b7912341f014669fa628a. Change-Id: I69a0d46636c41ba88cd233b2d243a6e31eb39b0e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r--src/corelib/kernel/qmetaobject.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index 7f000830e6a..cc26b6c19dc 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -2878,7 +2878,8 @@ auto QMetaMethodInvoker::invokeImpl(QMetaMethod self, void *target,
return InvokeFailReason::CouldNotQueueParameter;
}
- QVarLengthArray<const QtPrivate::QMetaTypeInterface *> argTypes;
+ QVarLengthArray<const QtPrivate::QMetaTypeInterface *, 16> argTypes;
+ argTypes.reserve(paramCount);
argTypes.emplace_back(nullptr); // return type
// fill in the meta types first
for (int i = 1; i < paramCount; ++i) {