diff options
author | Jędrzej Nowacki <jedrzej.nowacki@nokia.com> | 2012-03-13 16:36:49 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-14 23:04:57 +0100 |
commit | d295b9b9cfc8bde021bf07ea997d8cd0d14cffb8 (patch) | |
tree | 90499b450c1feaf8e300a5276cec1509cfe9df0d /src/corelib/kernel/qmetaobject.cpp | |
parent | dfba10441ea1645ea7183f4b1486366bb4562f39 (diff) |
Simplify QMetaObject::newInstance
To create space on stack for a QObject pointer QVariant is not really
essential.
Change-Id: Iaf04a4f77005e33823f0e14bfdc6fe927cb59867
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/corelib/kernel/qmetaobject.cpp')
-rw-r--r-- | src/corelib/kernel/qmetaobject.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index cacd999869..428c2629ff 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -207,13 +207,13 @@ QObject *QMetaObject::newInstance(QGenericArgument val0, if (idx < 0) return 0; - QVariant ret(QMetaType::QObjectStar, (void*)0); - void *param[] = {ret.data(), val0.data(), val1.data(), val2.data(), val3.data(), val4.data(), + QObject *returnValue = 0; + void *param[] = {&returnValue, val0.data(), val1.data(), val2.data(), val3.data(), val4.data(), val5.data(), val6.data(), val7.data(), val8.data(), val9.data()}; if (static_metacall(CreateInstance, idx, param) >= 0) return 0; - return *reinterpret_cast<QObject**>(param[0]); + return returnValue; } /*! |