diff options
| author | Aurélien Brooke <aurelien@bahiasoft.fr> | 2025-07-15 11:58:57 +0200 |
|---|---|---|
| committer | Aurélien Brooke <aurelien@bahiasoft.fr> | 2025-07-21 07:47:38 +0200 |
| commit | c074f4a74131b42c1af2dc081c5902bc8a7e6e8c (patch) | |
| tree | 17f2e5ad73b080e7a85aec3e233f562f6bf273de /src/corelib/kernel/qmetaobject.cpp | |
| parent | 1ac2386d06276dbb77ce215553f6a3d3e70f8e1f (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.cpp | 3 |
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) { |
