http://macieira.org/~thiago/qt-5.3/QtQml.diff
diff --git a/src/qml/qml/qqml.h b/src/qml/qml/qqml.h index b6c6fe8..721f2cc 100644 --- a/src/qml/qml/qqml.h +++ b/src/qml/qml/qqml.h @@ -91,13 +91,13 @@ class QQmlPropertyValueInterceptor; const char *className = T::staticMetaObject.className(); \ const int nameLen = int(strlen(className)); \ QVarLengthArray<char,48> pointerName(nameLen+2); \ - memcpy(pointerName.data(), className, nameLen); \ + memcpy(pointerName.data(), className, size_t(nameLen)); \ pointerName[nameLen] = '*'; \ pointerName[nameLen+1] = '\0'; \ const int listLen = int(strlen("QQmlListProperty<")); \ QVarLengthArray<char,64> listName(listLen + nameLen + 2); \ - memcpy(listName.data(), "QQmlListProperty<", listLen); \ - memcpy(listName.data()+listLen, className, nameLen); \ + memcpy(listName.data(), "QQmlListProperty<", size_t(listLen)); \ + memcpy(listName.data()+listLen, className, size_t(nameLen)); \ listName[listLen+nameLen] = '>'; \ listName[listLen+nameLen+1] = '\0'; @@ -419,7 +419,9 @@ class QQmlEngine; class QJSValue; class QJSEngine; +#ifndef Q_QDOC namespace QtQml { +#endif // declared in namespace to avoid symbol conflicts with QtDeclarative Q_QML_EXPORT void qmlExecuteDeferred(QObject *); Q_QML_EXPORT QQmlContext *qmlContext(const QObject *); @@ -427,7 +429,9 @@ namespace QtQml { Q_QML_EXPORT QObject *qmlAttachedPropertiesObjectById(int, const QObject *, bool create = true); Q_QML_EXPORT QObject *qmlAttachedPropertiesObject(int *, const QObject *, const QMetaObject *, bool create); +#ifndef Q_QDOC } +#endif #ifdef Q_CC_CLANG #pragma clang diagnostic push @@ -467,7 +471,7 @@ inline int qmlRegisterSingletonType(const char *uri, int versionMajor, int versi return QQmlPrivate::qmlregister(QQmlPrivate::SingletonRegistration, &api); } -static const int CurrentSingletonTypeRegistrationVersion = 2; +enum { QmlCurrentSingletonTypeRegistrationVersion = 2 }; template <typename T> inline int qmlRegisterSingletonType(const char *uri, int versionMajor, int versionMinor, const char *typeName, QObject *(*callback)(QQmlEngine *, QJSEngine *)) @@ -475,7 +479,7 @@ inline int qmlRegisterSingletonType(const char *uri, int versionMajor, int versi QML_GETTYPENAMES QQmlPrivate::RegisterSingletonType api = { - CurrentSingletonTypeRegistrationVersion, + QmlCurrentSingletonTypeRegistrationVersion, uri, versionMajor, versionMinor, typeName, diff --git a/src/qml/qml/qqmlcomponent.h b/src/qml/qml/qqmlcomponent.h index fe376d0..9be1990 100644 --- a/src/qml/qml/qqmlcomponent.h +++ b/src/qml/qml/qqmlcomponent.h @@ -127,9 +127,8 @@ private: QQmlComponent(QQmlEngine *, QQmlCompiledData *, int, QObject *parent); Q_DISABLE_COPY(QQmlComponent) - friend class QQmlVME; friend class QQmlTypeData; - friend class QmlObjectCreator; + friend class QQmlObjectCreator; }; QT_END_NAMESPACE diff --git a/src/qml/qml/qqmlcontext.h b/src/qml/qml/qqmlcontext.h index e191807..828ae8c 100644 --- a/src/qml/qml/qqmlcontext.h +++ b/src/qml/qml/qqmlcontext.h @@ -88,7 +88,6 @@ public: QUrl baseUrl() const; private: - friend class QQmlVME; friend class QQmlEngine; friend class QQmlEnginePrivate; friend class QQmlExpression; diff --git a/src/qml/qml/qqmlexpression.h b/src/qml/qml/qqmlexpression.h index b702a37..185b954 100644 --- a/src/qml/qml/qqmlexpression.h +++ b/src/qml/qml/qqmlexpression.h @@ -98,7 +98,6 @@ private: Q_DECLARE_PRIVATE(QQmlExpression) friend class QQmlDebugger; friend class QQmlContext; - friend class QQmlVME; }; QT_END_NAMESPACE diff --git a/src/qml/qml/qqmlparserstatus.h b/src/qml/qml/qqmlparserstatus.h index d3447e7..92b320e 100644 --- a/src/qml/qml/qqmlparserstatus.h +++ b/src/qml/qml/qqmlparserstatus.h @@ -58,10 +58,10 @@ public: virtual void componentComplete()=0; private: - friend class QQmlVME; friend class QQmlComponent; friend class QQmlComponentPrivate; friend class QQmlEnginePrivate; + friend class QQmlObjectCreator; QQmlParserStatus **d; }; diff --git a/src/qml/qml/qqmlprivate.h b/src/qml/qml/qqmlprivate.h index 15306cb..5460c99 100644 --- a/src/qml/qml/qqmlprivate.h +++ b/src/qml/qml/qqmlprivate.h @@ -61,6 +61,22 @@ QT_BEGIN_NAMESPACE +namespace QQmlPrivate { +struct CachedQmlUnit; +} + +namespace QV4 { +struct ExecutionEngine; +namespace CompiledData { +struct QmlUnit; +struct CompilationUnit; +} +typedef CompiledData::CompilationUnit *(*CompilationUnitFactoryFunction)(); +} +namespace QmlIR { +struct Document; +typedef void (*IRLoaderFunction)(Document *, const QQmlPrivate::CachedQmlUnit *); +} typedef QObject *(*QQmlAttachedPropertiesFunc)(QObject *); @@ -268,13 +284,26 @@ namespace QQmlPrivate const char *typeName; }; + struct CachedQmlUnit { + const QV4::CompiledData::QmlUnit *qmlData; + QV4::CompilationUnitFactoryFunction createCompilationUnit; + QmlIR::IRLoaderFunction loadIR; + }; + + typedef const CachedQmlUnit *(*QmlUnitCacheLookupFunction)(const QUrl &url); + struct RegisterQmlUnitCacheHook { + int version; + QmlUnitCacheLookupFunction lookupCachedQmlUnit; + }; + enum RegistrationType { TypeRegistration = 0, InterfaceRegistration = 1, AutoParentRegistration = 2, SingletonRegistration = 3, CompositeRegistration = 4, - CompositeSingletonRegistration = 5 + CompositeSingletonRegistration = 5, + QmlUnitCacheHookRegistration = 6 }; int Q_QML_EXPORT qmlregister(RegistrationType, void *); diff --git a/src/qml/qml/qqmlscriptstring.h b/src/qml/qml/qqmlscriptstring.h index 5421ef9..2c10df6 100644 --- a/src/qml/qml/qqmlscriptstring.h +++ b/src/qml/qml/qqmlscriptstring.h @@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE class QObject; class QQmlContext; class QQmlScriptStringPrivate; +class QQmlObjectCreator; class Q_QML_EXPORT QQmlScriptString { public: @@ -74,8 +75,8 @@ private: QQmlScriptString(const QString &script, QQmlContext *context, QObject *scope); QSharedDataPointer<QQmlScriptStringPrivate> d; + friend class QQmlObjectCreator; friend class QQmlScriptStringPrivate; - friend class QQmlVME; friend class QQmlExpression; friend class QQmlBinding; };
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development