From: Jędrzej Nowacki Date: Tue, 13 Mar 2012 15:36:49 +0000 (+0100) Subject: Simplify QMetaObject::newInstance X-Git-Tag: qt-v5.0.0-alpha1~298 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d295b9b9cfc8bde021bf07ea997d8cd0d14cffb8;p=profile%2Fivi%2Fqtbase.git Simplify QMetaObject::newInstance To create space on stack for a QObject pointer QVariant is not really essential. Change-Id: Iaf04a4f77005e33823f0e14bfdc6fe927cb59867 Reviewed-by: Olivier Goffart Reviewed-by: Kent Hansen --- diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index cacd999..428c262 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(param[0]); + return returnValue; } /*!