From: Kent Hansen Date: Fri, 23 Mar 2012 13:31:47 +0000 (+0100) Subject: Merge master into api_changes X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=0655209fdad022bd0f6eb20ce85522cb56506bf0;p=konrad%2Fqtdeclarative.git Merge master into api_changes Conflicts: src/qml/qml/qqmlboundsignal.cpp src/qml/qml/qqmlpropertycache.cpp Change-Id: I5193a193fa301c0b518291645bf626a5fa07118f --- 0655209fdad022bd0f6eb20ce85522cb56506bf0 diff --cc src/qml/debugger/qqmlprofilerservice_p.h index 7a70845,e9a58b4..2b4cafb --- a/src/qml/debugger/qqmlprofilerservice_p.h +++ b/src/qml/debugger/qqmlprofilerservice_p.h @@@ -210,8 -206,14 +206,14 @@@ struct QQmlHandlingSignalProfiler enabled = QQmlProfilerService::instance ? QQmlProfilerService::instance->profilingEnabled() : false; if (enabled) { - QQmlProfilerService::instance->startRange( - QQmlProfilerService::HandlingSignal); + QQmlProfilerService *service = QQmlProfilerService::instance; + service->startRange(QQmlProfilerService::HandlingSignal); + service->rangeData(QQmlProfilerService::HandlingSignal, - QLatin1String(signal.signature()) + QLatin1String(": ") ++ QString::fromLatin1(signal.methodSignature()) + QLatin1String(": ") + + expression->expression()); + service->rangeLocation(QQmlProfilerService::HandlingSignal, + expression->sourceFile(), expression->lineNumber(), + expression->columnNumber()); } } diff --cc src/qml/qml/qqmlboundsignal.cpp index aa130d9,5cc6032..f7d0c00 --- a/src/qml/qml/qqmlboundsignal.cpp +++ b/src/qml/qml/qqmlboundsignal.cpp @@@ -172,15 -172,9 +172,9 @@@ int QQmlBoundSignal::qt_metacall(QMetaO return -1; if (QQmlDebugService::isDebuggingEnabled()) - QV8DebugService::instance()->signalEmitted(QString::fromAscii(m_signal.signature())); + QV8DebugService::instance()->signalEmitted(QString::fromAscii(m_signal.methodSignature().constData())); - QQmlHandlingSignalProfiler prof; - if (prof.enabled) { - prof.setSignalInfo(QString::fromLatin1(m_signal.methodSignature().constData()), - m_expression->expression()); - prof.setLocation(m_expression->sourceFile(), m_expression->lineNumber(), - m_expression->columnNumber()); - } + QQmlHandlingSignalProfiler prof(m_signal, m_expression); m_isEvaluating = true; if (!m_paramsValid) { @@@ -233,7 -227,10 +227,10 @@@ QQmlBoundSignalParameters::QQmlBoundSig prop.setWritable(false); } else { QByteArray propType = type; - if (t >= int(QVariant::UserType) || t == QMetaType::UnknownType || t == QMetaType::Void) { + if ((QMetaType::typeFlags(t) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration) { + t = QVariant::Int; + propType = "int"; - } else if (t == QVariant::Invalid) { ++ } else if (t == QMetaType::UnknownType) { QByteArray scope; QByteArray name; int scopeIdx = propType.lastIndexOf("::"); diff --cc src/qml/qml/qqmlpropertycache.cpp index afab665,318044a..4a1eb79 --- a/src/qml/qml/qqmlpropertycache.cpp +++ b/src/qml/qml/qqmlpropertycache.cpp @@@ -719,20 -738,18 +730,22 @@@ int *QQmlPropertyCache::methodParameter const QMetaObject *metaObject = object->metaObject(); QMetaMethod m = metaObject->method(index); - QList argTypeNames = m.parameterTypes(); - A *args = static_cast(malloc(sizeof(A) + (argTypeNames.count() + 1) * sizeof(int))); - args->arguments[0] = argTypeNames.count(); + int argc = m.parameterCount(); + A *args = static_cast(malloc(sizeof(A) + (argc + 1) * sizeof(int))); + args->arguments[0] = argc; + QList argTypeNames; // Only loaded if needed - for (int ii = 0; ii < argTypeNames.count(); ++ii) { - int type = QMetaType::type(argTypeNames.at(ii)); + for (int ii = 0; ii < argc; ++ii) { + int type = m.parameterType(ii); - if (type == QVariant::Invalid) { + if ((QMetaType::typeFlags(type) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration) + type = QVariant::Int; - else if (type == QVariant::Invalid) ++ else if (type == QMetaType::UnknownType) { + if (argTypeNames.isEmpty()) + argTypeNames = m.parameterTypes(); type = EnumType(object->metaObject(), argTypeNames.at(ii)); - if (type == QVariant::Invalid) { + } - if (type == QVariant::Invalid) { ++ if (type == QMetaType::UnknownType) { if (unknownTypeError) *unknownTypeError = argTypeNames.at(ii); free(args); return 0; @@@ -747,19 -764,17 +760,21 @@@ } else { QMetaMethod m = object->metaObject()->method(index); - QList argTypeNames = m.parameterTypes(); - dummy.resize(argTypeNames.count() + 1); - dummy[0] = argTypeNames.count(); + int argc = m.parameterCount(); + dummy.resize(argc + 1); + dummy[0] = argc; + QList argTypeNames; // Only loaded if needed - for (int ii = 0; ii < argTypeNames.count(); ++ii) { - int type = QMetaType::type(argTypeNames.at(ii)); + for (int ii = 0; ii < argc; ++ii) { + int type = m.parameterType(ii); - if (type == QVariant::Invalid) { + if ((QMetaType::typeFlags(type) & QMetaType::IsEnumeration) == QMetaType::IsEnumeration) + type = QVariant::Int; - else if (type == QVariant::Invalid) ++ else if (type == QMetaType::UnknownType) { + if (argTypeNames.isEmpty()) + argTypeNames = m.parameterTypes(); type = EnumType(object->metaObject(), argTypeNames.at(ii)); - if (type == QVariant::Invalid) { + } - if (type == QVariant::Invalid) { ++ if (type == QMetaType::UnknownType) { if (unknownTypeError) *unknownTypeError = argTypeNames.at(ii); return 0; } diff --cc src/quick/scenegraph/qsgcontext.cpp index 02fbaa1,8b63266..da1c8e6 --- a/src/quick/scenegraph/qsgcontext.cpp +++ b/src/quick/scenegraph/qsgcontext.cpp @@@ -54,7 -54,9 +54,8 @@@ #include #include + #include -#include #include #include