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
[email protected]
http://lists.qt-project.org/mailman/listinfo/development