From 222a21187c3e3fe4ab6f436f30bde1b1dc0b2212 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 24 Sep 2010 00:22:05 +1000 Subject: Invalidate QStaticText coord cache when texture size changes If the glyph cache texture changes size, the texture coordinate array must be regenerated to point to the correct texture locations. Reviewed-By: Gunnar Sletta --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 2347e66..0426ffd 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1470,7 +1470,7 @@ namespace { { public: QOpenGLStaticTextUserData() - : QStaticTextUserData(OpenGLUserData) + : QStaticTextUserData(OpenGLUserData), cacheSize(0, 0) { } @@ -1478,6 +1478,7 @@ namespace { { } + QSize cacheSize; QGL2PEXVertexArray vertexCoordinateArray; QGL2PEXVertexArray textureCoordinateArray; }; @@ -1542,6 +1543,12 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp // Use cache if backend optimizations is turned on vertexCoordinates = &userData->vertexCoordinateArray; textureCoordinates = &userData->textureCoordinateArray; + + QSize size(cache->width(), cache->height()); + if (userData->cacheSize != size) { + recreateVertexArrays = true; + userData->cacheSize = size; + } } -- cgit v0.12 From 7a14055269c31a389d895a2fffa1e9d897e1bee3 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 24 Sep 2010 00:28:30 +1000 Subject: Remove unnecessary attribute changes The only consumer of TextDrawingMode is drawCachedGlyphs, and it always sets these two attrib pointers anyway. Reviewed-By: Gunnar Sletta --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 0426ffd..42792ac 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -612,8 +612,6 @@ void QGL2PaintEngineExPrivate::transferMode(EngineMode newMode) } if (newMode == TextDrawingMode) { - setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, (GLfloat*)vertexCoordinateArray.data()); - setVertexAttributePointer(QT_TEXTURE_COORDS_ATTR, (GLfloat*)textureCoordinateArray.data()); shaderManager->setHasComplexGeometry(true); } else { shaderManager->setHasComplexGeometry(false); -- cgit v0.12 From 8de9ec760810fea9c9cfccfe575a4693f2f5c024 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 28 Sep 2010 14:31:16 +1000 Subject: Only repopulate the glyph cache when we know something could have changed Reviewed-by: Gunnar Sletta --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 42792ac..6b0d2fa 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1499,9 +1499,22 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp staticTextItem->fontEngine->setGlyphCache(ctx, cache); } - cache->setPaintEnginePrivate(this); - cache->populate(staticTextItem->fontEngine, staticTextItem->numGlyphs, staticTextItem->glyphs, - staticTextItem->glyphPositions); + bool recreateVertexArrays = false; + if (staticTextItem->userDataNeedsUpdate) + recreateVertexArrays = true; + else if (staticTextItem->userData == 0) + recreateVertexArrays = true; + else if (staticTextItem->userData->type != QStaticTextUserData::OpenGLUserData) + recreateVertexArrays = true; + + // We only need to update the cache with new glyphs if we are actually going to recreate the vertex arrays. + // If the cache size has changed, we do need to regenerate the vertices, but we don't need to repopulate the + // cache so this text is performed before we test if the cache size has changed. + if (recreateVertexArrays) { + cache->setPaintEnginePrivate(this); + cache->populate(staticTextItem->fontEngine, staticTextItem->numGlyphs, staticTextItem->glyphs, + staticTextItem->glyphPositions); + } if (cache->width() == 0 || cache->height() == 0) return; @@ -1513,14 +1526,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp GLfloat dx = 1.0 / cache->width(); GLfloat dy = 1.0 / cache->height(); - bool recreateVertexArrays = false; - if (staticTextItem->userDataNeedsUpdate) - recreateVertexArrays = true; - else if (staticTextItem->userData == 0) - recreateVertexArrays = true; - else if (staticTextItem->userData->type != QStaticTextUserData::OpenGLUserData) - recreateVertexArrays = true; - // Use global arrays by default QGL2PEXVertexArray *vertexCoordinates = &vertexCoordinateArray; QGL2PEXVertexArray *textureCoordinates = &textureCoordinateArray; -- cgit v0.12 From 8f9ef5ca1cd24bf74004c8b12e4025b72ec7548b Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 28 Sep 2010 14:32:26 +1000 Subject: Only set maskTexture sampler uniform once Qt always uses the same texture unit as the maskTexture, so it makes sense to set the uniform only once when the program is created. Reviewed-By: Gunnar Sletta --- src/opengl/gl2paintengineex/qglengineshadermanager.cpp | 17 +++++++++++++---- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 2 -- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index 40b3641..ac87784 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -41,6 +41,7 @@ #include "qglengineshadermanager_p.h" #include "qglengineshadersource_p.h" +#include "qpaintengineex_opengl2_p.h" #if defined(QT_DEBUG) #include @@ -248,6 +249,7 @@ QByteArray QGLEngineSharedShaders::snippetNameStr(SnippetName name) #endif // The address returned here will only be valid until next time this function is called. +// The program is return bound. QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineShaderProg &prog) { for (int i = 0; i < cachedPrograms.size(); ++i) { @@ -255,6 +257,7 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS if (*cachedProg == prog) { // Move the program to the top of the list as a poor-man's cache algo cachedPrograms.move(i, 0); + cachedProg->program->bind(); return cachedProg; } } @@ -355,6 +358,14 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS qWarning() << error; break; } + + newProg->program->bind(); + + if (newProg->maskFragShader != QGLEngineSharedShaders::NoMaskFragmentShader) { + GLuint location = newProg->program->uniformLocation("maskTexture"); + newProg->program->setUniformValue(location, QT_MASK_TEXTURE_UNIT); + } + if (cachedPrograms.count() > 30) { // The cache is full, so delete the last 5 programs in the list. // These programs will be least used, as a program us bumped to @@ -769,10 +780,8 @@ bool QGLEngineShaderManager::useCorrectShaderProg() // At this point, requiredProgram is fully populated so try to find the program in the cache currentShaderProg = sharedShaders->findProgramInCache(requiredProgram); - if (currentShaderProg) { - currentShaderProg->program->bind(); - if (useCustomSrc) - customSrcStage->setUniforms(currentShaderProg->program); + if (currentShaderProg && useCustomSrc) { + customSrcStage->setUniforms(currentShaderProg->program); } // Make sure all the vertex attribute arrays the program uses are enabled (and the ones it diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 6b0d2fa..5dd66fe 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1666,7 +1666,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp glBindTexture(GL_TEXTURE_2D, cache->texture()); updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, false); - shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::MaskTexture), QT_MASK_TEXTURE_UNIT); #if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO) glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, 0); #else @@ -1702,7 +1701,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp lastMaskTextureUsed = cache->texture(); } updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, s->matrix.type() > QTransform::TxTranslate); - shaderManager->currentProgram()->setUniformValue(location(QGLEngineShaderManager::MaskTexture), QT_MASK_TEXTURE_UNIT); #if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO) glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, 0); -- cgit v0.12 From 3a927312dbb797f03b351067210b83784c7132cb Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 28 Sep 2010 14:59:23 +1000 Subject: Minimize parameter changes on glyph cache textures Cache the last set filtering mode on glyph textures and update only when necessary. Reviewed-by: Gunnar Sletta --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 24 +++++++++++++++++----- .../gl2paintengineex/qtextureglyphcache_gl.cpp | 5 +++++ .../gl2paintengineex/qtextureglyphcache_gl_p.h | 8 ++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 5dd66fe..cb1ca8e 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1695,12 +1695,26 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp } //### TODO: Gamma correction - glActiveTexture(GL_TEXTURE0 + QT_MASK_TEXTURE_UNIT); - if (lastMaskTextureUsed != cache->texture()) { - glBindTexture(GL_TEXTURE_2D, cache->texture()); - lastMaskTextureUsed = cache->texture(); + QGLTextureGlyphCache::FilterMode filterMode = (s->matrix.type() > QTransform::TxTranslate)?QGLTextureGlyphCache::Linear:QGLTextureGlyphCache::Nearest; + if (lastMaskTextureUsed != cache->texture() || cache->filterMode() != filterMode) { + + glActiveTexture(GL_TEXTURE0 + QT_MASK_TEXTURE_UNIT); + if (lastMaskTextureUsed != cache->texture()) { + glBindTexture(GL_TEXTURE_2D, cache->texture()); + lastMaskTextureUsed = cache->texture(); + } + + if (cache->filterMode() != filterMode) { + if (filterMode == QGLTextureGlyphCache::Linear) { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + } else { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + } + cache->setFilterMode(filterMode); + } } - updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, s->matrix.type() > QTransform::TxTranslate); #if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO) glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, 0); diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index f353995..9a5bac0 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -57,6 +57,7 @@ QGLTextureGlyphCache::QGLTextureGlyphCache(QGLContext *context, QFontEngineGlyph , ctx(context) , m_width(0) , m_height(0) + , m_filterMode(Nearest) { // broken FBO readback is a bug in the SGX 1.3 and 1.4 drivers for the N900 where // copying between FBO's is broken if the texture is either GL_ALPHA or POT. The @@ -114,6 +115,9 @@ void QGLTextureGlyphCache::createTextureData(int width, int height) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + m_filterMode = Nearest; } void QGLTextureGlyphCache::resizeTextureData(int width, int height) @@ -152,6 +156,7 @@ void QGLTextureGlyphCache::resizeTextureData(int width, int height) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + m_filterMode = Nearest; glBindTexture(GL_TEXTURE_2D, 0); glFramebufferTexture2D(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tmp_texture, 0); diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h index eb3693c..e22146d 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h @@ -83,6 +83,12 @@ public: inline void setPaintEnginePrivate(QGL2PaintEngineExPrivate *p) { pex = p; } + enum FilterMode { + Nearest, + Linear + }; + FilterMode filterMode() const { return m_filterMode; } + void setFilterMode(FilterMode m) { m_filterMode = m; } public Q_SLOTS: void contextDestroyed(const QGLContext *context) { @@ -117,6 +123,8 @@ private: int m_height; QGLShaderProgram *m_program; + + FilterMode m_filterMode; }; QT_END_NAMESPACE -- cgit v0.12 From fd9771c29d401d88779ab7c5d7715c9ca41dd723 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 22 Sep 2010 21:03:57 +0200 Subject: Make QmlDebug protocol more robust The protocol so far was client->server only. That is, there was no sane way for a client to check whether a plugin on the server (service) was available or not. E.g. calling Client::setEnabled(true) 'succeeded', without a check whether there is actually a service to talk to. The new protocol replaces this shortcoming by a service discovery mechanism: Both client & service announce their available plugins at handshake time, and later on if there are changes. The status is reflected in Client::status() and Service::Status() , which are either NotConnected - no network connection, or not registered properly Unavailable - TCP/IP connection works, but no plugin with the same name on the other side Enabled - You can connect to plugin on other side The status changes happen automatically (no setEnabled() anymore). Furthermore a version ID was added to the handshake, so that we can extend the protocol further in the future :) --- src/declarative/debugger/qdeclarativedebug.cpp | 56 ++++-- src/declarative/debugger/qdeclarativedebug_p.h | 7 +- .../debugger/qdeclarativedebugclient.cpp | 199 +++++++++++++++------ .../debugger/qdeclarativedebugclient_p.h | 10 +- .../debugger/qdeclarativedebugservice.cpp | 126 ++++++++++--- .../debugger/qdeclarativedebugservice_p.h | 9 +- .../debugger/qdeclarativedebugtrace.cpp | 8 +- .../qdeclarativedebug/tst_qdeclarativedebug.cpp | 5 +- .../tst_qdeclarativedebugclient.cpp | 60 +++---- .../tst_qdeclarativedebugservice.cpp | 41 ++--- tests/auto/declarative/shared/debugutil.cpp | 13 +- tests/auto/declarative/shared/debugutil_p.h | 8 +- 12 files changed, 362 insertions(+), 180 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebug.cpp b/src/declarative/debugger/qdeclarativedebug.cpp index 1ffe441..7a5e5f6 100644 --- a/src/declarative/debugger/qdeclarativedebug.cpp +++ b/src/declarative/debugger/qdeclarativedebug.cpp @@ -55,10 +55,12 @@ public: QDeclarativeEngineDebugClient(QDeclarativeDebugConnection *client, QDeclarativeEngineDebugPrivate *p); protected: + virtual void statusChanged(Status status); virtual void messageReceived(const QByteArray &); private: QDeclarativeEngineDebugPrivate *priv; + friend class QDeclarativeEngineDebugPrivate; }; class QDeclarativeEngineDebugPrivate : public QObjectPrivate @@ -66,7 +68,9 @@ class QDeclarativeEngineDebugPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QDeclarativeEngineDebug) public: QDeclarativeEngineDebugPrivate(QDeclarativeDebugConnection *); + ~QDeclarativeEngineDebugPrivate(); + void statusChanged(QDeclarativeEngineDebug::Status status); void message(const QByteArray &); QDeclarativeEngineDebugClient *client; @@ -93,12 +97,18 @@ QDeclarativeEngineDebugClient::QDeclarativeEngineDebugClient(QDeclarativeDebugCo QDeclarativeEngineDebugPrivate *p) : QDeclarativeDebugClient(QLatin1String("QDeclarativeEngine"), client), priv(p) { - setEnabled(true); +} + +void QDeclarativeEngineDebugClient::statusChanged(Status status) +{ + if (priv) + priv->statusChanged(static_cast(status)); } void QDeclarativeEngineDebugClient::messageReceived(const QByteArray &data) { - priv->message(data); + if (priv) + priv->message(data); } QDeclarativeEngineDebugPrivate::QDeclarativeEngineDebugPrivate(QDeclarativeDebugConnection *c) @@ -106,6 +116,12 @@ QDeclarativeEngineDebugPrivate::QDeclarativeEngineDebugPrivate(QDeclarativeDebug { } +QDeclarativeEngineDebugPrivate::~QDeclarativeEngineDebugPrivate() +{ + if (client) + client->priv = 0; +} + int QDeclarativeEngineDebugPrivate::getId() { return nextId++; @@ -228,6 +244,11 @@ void QDeclarativeEngineDebugPrivate::decode(QDataStream &ds, QDeclarativeDebugCo } } +void QDeclarativeEngineDebugPrivate::statusChanged(QDeclarativeEngineDebug::Status status) +{ + emit q_func()->statusChanged(status); +} + void QDeclarativeEngineDebugPrivate::message(const QByteArray &data) { QDataStream ds(data); @@ -350,12 +371,19 @@ QDeclarativeEngineDebug::QDeclarativeEngineDebug(QDeclarativeDebugConnection *cl { } +QDeclarativeEngineDebug::Status QDeclarativeEngineDebug::status() const +{ + Q_D(const QDeclarativeEngineDebug); + + return static_cast(d->client->status()); +} + QDeclarativeDebugPropertyWatch *QDeclarativeEngineDebug::addWatch(const QDeclarativeDebugPropertyReference &property, QObject *parent) { Q_D(QDeclarativeEngineDebug); QDeclarativeDebugPropertyWatch *watch = new QDeclarativeDebugPropertyWatch(parent); - if (d->client->isConnected()) { + if (d->client->status() == QDeclarativeDebugClient::Enabled) { int queryId = d->getId(); watch->m_queryId = queryId; watch->m_client = this; @@ -384,7 +412,7 @@ QDeclarativeDebugObjectExpressionWatch *QDeclarativeEngineDebug::addWatch(const { Q_D(QDeclarativeEngineDebug); QDeclarativeDebugObjectExpressionWatch *watch = new QDeclarativeDebugObjectExpressionWatch(parent); - if (d->client->isConnected()) { + if (d->client->status() == QDeclarativeDebugClient::Enabled) { int queryId = d->getId(); watch->m_queryId = queryId; watch->m_client = this; @@ -407,7 +435,7 @@ QDeclarativeDebugWatch *QDeclarativeEngineDebug::addWatch(const QDeclarativeDebu Q_D(QDeclarativeEngineDebug); QDeclarativeDebugWatch *watch = new QDeclarativeDebugWatch(parent); - if (d->client->isConnected()) { + if (d->client->status() == QDeclarativeDebugClient::Enabled) { int queryId = d->getId(); watch->m_queryId = queryId; watch->m_client = this; @@ -443,7 +471,7 @@ void QDeclarativeEngineDebug::removeWatch(QDeclarativeDebugWatch *watch) d->watched.remove(watch->queryId()); - if (d->client && d->client->isConnected()) { + if (d->client && d->client->status() == QDeclarativeDebugClient::Enabled) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("NO_WATCH") << watch->queryId(); @@ -456,7 +484,7 @@ QDeclarativeDebugEnginesQuery *QDeclarativeEngineDebug::queryAvailableEngines(QO Q_D(QDeclarativeEngineDebug); QDeclarativeDebugEnginesQuery *query = new QDeclarativeDebugEnginesQuery(parent); - if (d->client->isConnected()) { + if (d->client->status() == QDeclarativeDebugClient::Enabled) { query->m_client = this; int queryId = d->getId(); query->m_queryId = queryId; @@ -478,7 +506,7 @@ QDeclarativeDebugRootContextQuery *QDeclarativeEngineDebug::queryRootContexts(co Q_D(QDeclarativeEngineDebug); QDeclarativeDebugRootContextQuery *query = new QDeclarativeDebugRootContextQuery(parent); - if (d->client->isConnected() && engine.debugId() != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && engine.debugId() != -1) { query->m_client = this; int queryId = d->getId(); query->m_queryId = queryId; @@ -500,7 +528,7 @@ QDeclarativeDebugObjectQuery *QDeclarativeEngineDebug::queryObject(const QDeclar Q_D(QDeclarativeEngineDebug); QDeclarativeDebugObjectQuery *query = new QDeclarativeDebugObjectQuery(parent); - if (d->client->isConnected() && object.debugId() != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && object.debugId() != -1) { query->m_client = this; int queryId = d->getId(); query->m_queryId = queryId; @@ -523,7 +551,7 @@ QDeclarativeDebugObjectQuery *QDeclarativeEngineDebug::queryObjectRecursive(cons Q_D(QDeclarativeEngineDebug); QDeclarativeDebugObjectQuery *query = new QDeclarativeDebugObjectQuery(parent); - if (d->client->isConnected() && object.debugId() != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && object.debugId() != -1) { query->m_client = this; int queryId = d->getId(); query->m_queryId = queryId; @@ -546,7 +574,7 @@ QDeclarativeDebugExpressionQuery *QDeclarativeEngineDebug::queryExpressionResult Q_D(QDeclarativeEngineDebug); QDeclarativeDebugExpressionQuery *query = new QDeclarativeDebugExpressionQuery(parent); - if (d->client->isConnected() && objectDebugId != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && objectDebugId != -1) { query->m_client = this; query->m_expr = expr; int queryId = d->getId(); @@ -570,7 +598,7 @@ bool QDeclarativeEngineDebug::setBindingForObject(int objectDebugId, const QStri { Q_D(QDeclarativeEngineDebug); - if (d->client->isConnected() && objectDebugId != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && objectDebugId != -1) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("SET_BINDING") << objectDebugId << propertyName << bindingExpression << isLiteralValue; @@ -585,7 +613,7 @@ bool QDeclarativeEngineDebug::resetBindingForObject(int objectDebugId, const QSt { Q_D(QDeclarativeEngineDebug); - if (d->client->isConnected() && objectDebugId != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && objectDebugId != -1) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("RESET_BINDING") << objectDebugId << propertyName; @@ -601,7 +629,7 @@ bool QDeclarativeEngineDebug::setMethodBody(int objectDebugId, const QString &me { Q_D(QDeclarativeEngineDebug); - if (d->client->isConnected() && objectDebugId != -1) { + if (d->client->status() == QDeclarativeDebugClient::Enabled && objectDebugId != -1) { QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); ds << QByteArray("SET_METHOD_BODY") << objectDebugId << methodName << methodBody; diff --git a/src/declarative/debugger/qdeclarativedebug_p.h b/src/declarative/debugger/qdeclarativedebug_p.h index 2b1a115..3d83e8a 100644 --- a/src/declarative/debugger/qdeclarativedebug_p.h +++ b/src/declarative/debugger/qdeclarativedebug_p.h @@ -69,7 +69,11 @@ class Q_DECLARATIVE_EXPORT QDeclarativeEngineDebug : public QObject { Q_OBJECT public: - QDeclarativeEngineDebug(QDeclarativeDebugConnection *, QObject * = 0); + enum Status { NotConnected, Unavailable, Enabled }; + + explicit QDeclarativeEngineDebug(QDeclarativeDebugConnection *, QObject * = 0); + + Status status() const; QDeclarativeDebugPropertyWatch *addWatch(const QDeclarativeDebugPropertyReference &, QObject *parent = 0); @@ -101,6 +105,7 @@ public: Q_SIGNALS: void newObjects(); + void statusChanged(Status status); private: Q_DECLARE_PRIVATE(QDeclarativeEngineDebug) diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index 2e52b40..f7d7243 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -50,6 +50,20 @@ QT_BEGIN_NAMESPACE +const int protocolVersion = 1; +const QString serverId = QLatin1String("QDeclarativeDebugServer"); +const QString clientId = QLatin1String("QDeclarativeDebugClient"); + +class QDeclarativeDebugClientPrivate : public QObjectPrivate +{ + Q_DECLARE_PUBLIC(QDeclarativeDebugClient) +public: + QDeclarativeDebugClientPrivate(); + + QString name; + QDeclarativeDebugConnection *client; +}; + class QDeclarativeDebugConnectionPrivate : public QObject { Q_OBJECT @@ -58,40 +72,123 @@ public: QDeclarativeDebugConnection *q; QPacketProtocol *protocol; - QStringList enabled; + bool gotHello; + QStringList serverPlugins; QHash plugins; + + void advertisePlugins(); + public Q_SLOTS: void connected(); void readyRead(); }; QDeclarativeDebugConnectionPrivate::QDeclarativeDebugConnectionPrivate(QDeclarativeDebugConnection *c) -: QObject(c), q(c), protocol(0) +: QObject(c), q(c), protocol(0), gotHello(false) { protocol = new QPacketProtocol(q, this); QObject::connect(c, SIGNAL(connected()), this, SLOT(connected())); QObject::connect(protocol, SIGNAL(readyRead()), this, SLOT(readyRead())); } +void QDeclarativeDebugConnectionPrivate::advertisePlugins() +{ + if (!q->isConnected() || !gotHello) + return; + + QPacket pack; + pack << serverId << 1 << plugins.keys(); + protocol->send(pack); +} + void QDeclarativeDebugConnectionPrivate::connected() { QPacket pack; - pack << QString(QLatin1String("QDeclarativeDebugServer")) << enabled; + pack << serverId << 0 << protocolVersion << plugins.keys(); protocol->send(pack); } void QDeclarativeDebugConnectionPrivate::readyRead() { - QPacket pack = protocol->read(); - QString name; QByteArray message; - pack >> name >> message; + if (!gotHello) { + QPacket pack = protocol->read(); + QString name; + + pack >> name; + + bool validHello = false; + if (name == clientId) { + int op = -1; + pack >> op; + if (op == 0) { + int version = -1; + pack >> version; + if (version == protocolVersion) { + pack >> serverPlugins; + validHello = true; + } + } + } - QHash::Iterator iter = - plugins.find(name); - if (iter == plugins.end()) { - qWarning() << "QDeclarativeDebugConnection: Message received for missing plugin" << name; - } else { - (*iter)->messageReceived(message); + if (!validHello) { + qWarning("QDeclarativeDebugConnection: Invalid hello message"); + QObject::disconnect(protocol, SIGNAL(readyRead()), this, SLOT(readyRead())); + return; + } + + qDebug() << "Available server side plugins: " << serverPlugins; + + QHash::Iterator iter = plugins.begin(); + for (; iter != plugins.end(); ++iter) { + QDeclarativeDebugClient::Status newStatus = QDeclarativeDebugClient::Unavailable; + if (serverPlugins.contains(iter.key())) + newStatus = QDeclarativeDebugClient::Enabled; + iter.value()->statusChanged(newStatus); + } + gotHello = true; + } + + while (protocol->packetsAvailable()) { + QPacket pack = protocol->read(); + QString name; + pack >> name; + + if (name == clientId) { + int op = -1; + pack >> op; + + if (op == 1) { + // Service Discovery + QStringList oldServerPlugins = serverPlugins; + pack >> serverPlugins; + + QHash::Iterator iter = plugins.begin(); + for (; iter != plugins.end(); ++iter) { + const QString pluginName = iter.key(); + QDeclarativeDebugClient::Status newStatus = QDeclarativeDebugClient::Unavailable; + if (serverPlugins.contains(pluginName)) + newStatus = QDeclarativeDebugClient::Enabled; + + if (oldServerPlugins.contains(pluginName) + != serverPlugins.contains(pluginName)) { + iter.value()->statusChanged(newStatus); + } + } + } else { + qWarning() << "QDeclarativeDebugConnection: Unknown control message id" << op; + } + } else { + QByteArray message; + pack >> message; + + QHash::Iterator iter = + plugins.find(name); + if (iter == plugins.end()) { + qWarning() << "QDeclarativeDebugConnection: Message received for missing plugin" << name; + } else { + (*iter)->messageReceived(message); + } + } } } @@ -100,24 +197,22 @@ QDeclarativeDebugConnection::QDeclarativeDebugConnection(QObject *parent) { } -bool QDeclarativeDebugConnection::isConnected() const +QDeclarativeDebugConnection::~QDeclarativeDebugConnection() { - return state() == ConnectedState; + QHash::iterator iter = d->plugins.begin(); + for (; iter != d->plugins.end(); ++iter) { + iter.value()->d_func()->client = 0; + iter.value()->statusChanged(QDeclarativeDebugClient::NotConnected); + } } -class QDeclarativeDebugClientPrivate : public QObjectPrivate +bool QDeclarativeDebugConnection::isConnected() const { - Q_DECLARE_PUBLIC(QDeclarativeDebugClient) -public: - QDeclarativeDebugClientPrivate(); - - QString name; - QDeclarativeDebugConnection *client; - bool enabled; -}; + return state() == ConnectedState; +} QDeclarativeDebugClientPrivate::QDeclarativeDebugClientPrivate() -: client(0), enabled(false) +: client(0) { } @@ -137,60 +232,44 @@ QDeclarativeDebugClient::QDeclarativeDebugClient(const QString &name, d->client = 0; } else { d->client->d->plugins.insert(name, this); + d->client->d->advertisePlugins(); } } -QString QDeclarativeDebugClient::name() const +QDeclarativeDebugClient::~QDeclarativeDebugClient() { Q_D(const QDeclarativeDebugClient); - return d->name; + if (d->client && d->client->d) { + d->client->d->plugins.remove(d->name); + d->client->d->advertisePlugins(); + } } -bool QDeclarativeDebugClient::isEnabled() const +QString QDeclarativeDebugClient::name() const { Q_D(const QDeclarativeDebugClient); - return d->enabled; -} - -void QDeclarativeDebugClient::setEnabled(bool e) -{ - Q_D(QDeclarativeDebugClient); - if (e == d->enabled) - return; - - d->enabled = e; - - if (d->client) { - if (e) - d->client->d->enabled.append(d->name); - else - d->client->d->enabled.removeAll(d->name); - - if (d->client->state() == QTcpSocket::ConnectedState) { - QPacket pack; - pack << QString(QLatin1String("QDeclarativeDebugServer")); - if (e) pack << (int)1; - else pack << (int)2; - pack << d->name; - d->client->d->protocol->send(pack); - } - } + return d->name; } -bool QDeclarativeDebugClient::isConnected() const +QDeclarativeDebugClient::Status QDeclarativeDebugClient::status() const { Q_D(const QDeclarativeDebugClient); + if (!d->client + || !d->client->isConnected() + || !d->client->d->gotHello) + return NotConnected; - if (!d->client) - return false; - return d->client->isConnected(); + if (d->client->d->serverPlugins.contains(d->name)) + return Enabled; + + return Unavailable; } void QDeclarativeDebugClient::sendMessage(const QByteArray &message) { Q_D(QDeclarativeDebugClient); - if (!d->client || !d->client->isConnected()) + if (status() != Enabled) return; QPacket pack; @@ -198,6 +277,10 @@ void QDeclarativeDebugClient::sendMessage(const QByteArray &message) d->client->d->protocol->send(pack); } +void QDeclarativeDebugClient::statusChanged(Status status) +{ +} + void QDeclarativeDebugClient::messageReceived(const QByteArray &) { } diff --git a/src/declarative/debugger/qdeclarativedebugclient_p.h b/src/declarative/debugger/qdeclarativedebugclient_p.h index 4144a66..8d1706d 100644 --- a/src/declarative/debugger/qdeclarativedebugclient_p.h +++ b/src/declarative/debugger/qdeclarativedebugclient_p.h @@ -57,6 +57,7 @@ class Q_DECLARATIVE_EXPORT QDeclarativeDebugConnection : public QTcpSocket Q_DISABLE_COPY(QDeclarativeDebugConnection) public: QDeclarativeDebugConnection(QObject * = 0); + ~QDeclarativeDebugConnection(); bool isConnected() const; private: @@ -73,18 +74,19 @@ class Q_DECLARATIVE_EXPORT QDeclarativeDebugClient : public QObject Q_DISABLE_COPY(QDeclarativeDebugClient) public: + enum Status { NotConnected, Unavailable, Enabled }; + QDeclarativeDebugClient(const QString &, QDeclarativeDebugConnection *parent); + ~QDeclarativeDebugClient(); QString name() const; - bool isEnabled() const; - void setEnabled(bool); - - bool isConnected() const; + Status status() const; void sendMessage(const QByteArray &); protected: + virtual void statusChanged(Status); virtual void messageReceived(const QByteArray &); private: diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp index 1f2bf4f..0fbc1e3 100644 --- a/src/declarative/debugger/qdeclarativedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativedebugservice.cpp @@ -54,6 +54,30 @@ QT_BEGIN_NAMESPACE +/* + QDeclarativeDebug Protocol (Version 1): + + handshake: + 1. Client sends + "QDeclarativeDebugServer" 0 version pluginNames + version: an int representing the highest protocol version the client knows + pluginNames: plugins available on client side + 2. Server sends + "QDeclarativeDebugClient" 0 version pluginNames + version: an int representing the highest protocol version the client & server know + pluginNames: plugins available on server side. plugins both in the client and server message are enabled. + client plugin advertisement + 1. Client sends + "QDeclarativeDebugServer" 1 pluginNames + server plugin advertisement + 1. Server sends + "QDeclarativeDebugClient" 1 pluginNames + plugin communication: + Everything send with a header different to "QDeclarativeDebugServer" is sent to the appropriate plugin. + */ + +const int protocolVersion = 1; + class QDeclarativeDebugServerPrivate; class QDeclarativeDebugServer : public QObject { @@ -82,11 +106,13 @@ class QDeclarativeDebugServerPrivate : public QObjectPrivate public: QDeclarativeDebugServerPrivate(); + void advertisePlugins(); + int port; QTcpSocket *connection; QPacketProtocol *protocol; QHash plugins; - QStringList enabledPlugins; + QStringList clientPlugins; QTcpServer *tcpServer; bool gotHello; }; @@ -106,6 +132,18 @@ QDeclarativeDebugServerPrivate::QDeclarativeDebugServerPrivate() { } +void QDeclarativeDebugServerPrivate::advertisePlugins() +{ + if (!connection + || connection->state() != QTcpSocket::ConnectedState + || !gotHello) + return; + + QPacket pack; + pack << QString(QLatin1String("QDeclarativeDebugClient")) << 1 << plugins.keys(); + protocol->send(pack); +} + void QDeclarativeDebugServer::listen() { Q_D(QDeclarativeDebugServer); @@ -202,9 +240,13 @@ void QDeclarativeDebugServer::readyRead() if (!d->gotHello) { QPacket hello = d->protocol->read(); - QString name; - hello >> name >> d->enabledPlugins; - if (name != QLatin1String("QDeclarativeDebugServer")) { + + QString name; + int op; + hello >> name >> op; + + if (name != QLatin1String("QDeclarativeDebugServer") + || op != 0) { qWarning("QDeclarativeDebugServer: Invalid hello message"); QObject::disconnect(d->protocol, SIGNAL(readyRead()), this, SLOT(readyRead())); d->protocol->deleteLater(); @@ -213,6 +255,23 @@ void QDeclarativeDebugServer::readyRead() d->connection = 0; return; } + + int version; + hello >> version >> d->clientPlugins; + + QHash::Iterator iter = d->plugins.begin(); + for (; iter != d->plugins.end(); ++iter) { + QDeclarativeDebugService::Status newStatus = QDeclarativeDebugService::Unavailable; + if (d->clientPlugins.contains(iter.key())) + newStatus = QDeclarativeDebugService::Enabled; + iter.value()->statusChanged(newStatus); + } + + QPacket helloAnswer; + helloAnswer << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys(); + d->protocol->send(helloAnswer); + d->connection->flush(); + d->gotHello = true; qWarning("QDeclarativeDebugServer: Connection established"); } @@ -226,32 +285,29 @@ void QDeclarativeDebugServer::readyRead() pack >> name; if (name == debugServer) { - int op = -1; QString plugin; - pack >> op >> plugin; + int op = -1; + pack >> op; if (op == 1) { - // Enable - if (!d->enabledPlugins.contains(plugin)) { - d->enabledPlugins.append(plugin); - QHash::Iterator iter = - d->plugins.find(plugin); - if (iter != d->plugins.end()) - (*iter)->enabledChanged(true); - } - - } else if (op == 2) { - // Disable - if (d->enabledPlugins.contains(plugin)) { - d->enabledPlugins.removeAll(plugin); - QHash::Iterator iter = - d->plugins.find(plugin); - if (iter != d->plugins.end()) - (*iter)->enabledChanged(false); + // Service Discovery + QStringList oldClientPlugins = d->clientPlugins; + pack >> d->clientPlugins; + + QHash::Iterator iter = d->plugins.begin(); + for (; iter != d->plugins.end(); ++iter) { + const QString pluginName = iter.key(); + QDeclarativeDebugService::Status newStatus = QDeclarativeDebugService::Unavailable; + if (d->clientPlugins.contains(pluginName)) + newStatus = QDeclarativeDebugService::Enabled; + + if (oldClientPlugins.contains(pluginName) + != d->clientPlugins.contains(pluginName)) { + iter.value()->statusChanged(newStatus); + } } } else { qWarning("QDeclarativeDebugServer: Invalid control message %d", op); } - } else { QByteArray message; pack >> message; @@ -287,6 +343,16 @@ QDeclarativeDebugService::QDeclarativeDebugService(const QString &name, QObject d->server = 0; } else { d->server->d_func()->plugins.insert(name, this); + d->server->d_func()->advertisePlugins(); + } +} + +QDeclarativeDebugService::~QDeclarativeDebugService() +{ + Q_D(const QDeclarativeDebugService); + if (d->server) { + d->server->d_func()->plugins.remove(d->name); + d->server->d_func()->advertisePlugins(); } } @@ -296,10 +362,16 @@ QString QDeclarativeDebugService::name() const return d->name; } -bool QDeclarativeDebugService::isEnabled() const +QDeclarativeDebugService::Status QDeclarativeDebugService::status() const { Q_D(const QDeclarativeDebugService); - return (d->server && d->server->d_func()->enabledPlugins.contains(d->name)); + if (!d->server + || !d->server->hasDebuggingClient()) + return NotConnected; + if (d->server->d_func()->clientPlugins.contains(d->name)) + return Enabled; + + return Unavailable; } namespace { @@ -422,7 +494,7 @@ void QDeclarativeDebugService::sendMessage(const QByteArray &message) d->server->d_func()->connection->flush(); } -void QDeclarativeDebugService::enabledChanged(bool) +void QDeclarativeDebugService::statusChanged(Status) { } diff --git a/src/declarative/debugger/qdeclarativedebugservice_p.h b/src/declarative/debugger/qdeclarativedebugservice_p.h index c461ddf..0cadbe5 100644 --- a/src/declarative/debugger/qdeclarativedebugservice_p.h +++ b/src/declarative/debugger/qdeclarativedebugservice_p.h @@ -56,12 +56,15 @@ class Q_DECLARATIVE_EXPORT QDeclarativeDebugService : public QObject Q_OBJECT Q_DECLARE_PRIVATE(QDeclarativeDebugService) Q_DISABLE_COPY(QDeclarativeDebugService) + public: - QDeclarativeDebugService(const QString &, QObject *parent = 0); + explicit QDeclarativeDebugService(const QString &, QObject *parent = 0); + ~QDeclarativeDebugService(); QString name() const; - bool isEnabled() const; + enum Status { NotConnected, Unavailable, Enabled }; + Status status() const; void sendMessage(const QByteArray &); @@ -74,7 +77,7 @@ public: static bool hasDebuggingClient(); protected: - virtual void enabledChanged(bool); + virtual void statusChanged(Status); virtual void messageReceived(const QByteArray &); private: diff --git a/src/declarative/debugger/qdeclarativedebugtrace.cpp b/src/declarative/debugger/qdeclarativedebugtrace.cpp index b2b0c8a..03e2d56 100644 --- a/src/declarative/debugger/qdeclarativedebugtrace.cpp +++ b/src/declarative/debugger/qdeclarativedebugtrace.cpp @@ -78,7 +78,7 @@ void QDeclarativeDebugTrace::endRange(RangeType t) void QDeclarativeDebugTrace::addEventImpl(EventType event) { - if (!isEnabled()) + if (status() != Enabled) return; QByteArray data; @@ -89,7 +89,7 @@ void QDeclarativeDebugTrace::addEventImpl(EventType event) void QDeclarativeDebugTrace::startRangeImpl(RangeType range) { - if (!isEnabled()) + if (status() != Enabled) return; QByteArray data; @@ -100,7 +100,7 @@ void QDeclarativeDebugTrace::startRangeImpl(RangeType range) void QDeclarativeDebugTrace::rangeDataImpl(RangeType range, const QUrl &u) { - if (!isEnabled()) + if (status() != Enabled) return; QByteArray data; @@ -111,7 +111,7 @@ void QDeclarativeDebugTrace::rangeDataImpl(RangeType range, const QUrl &u) void QDeclarativeDebugTrace::endRangeImpl(RangeType range) { - if (!isEnabled()) + if (status() != Enabled) return; QByteArray data; diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp index adba190..dd58baf 100644 --- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp +++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp @@ -324,13 +324,16 @@ void tst_QDeclarativeDebug::initTestCase() bool ok = m_conn->waitForConnected(); Q_ASSERT(ok); QTRY_VERIFY(QDeclarativeDebugService::hasDebuggingClient()); - m_dbg = new QDeclarativeEngineDebug(m_conn, this); + QTRY_VERIFY(m_dbg->status() == QDeclarativeEngineDebug::Enabled); } void tst_QDeclarativeDebug::cleanupTestCase() { + delete m_dbg; + delete m_conn; qDeleteAll(m_components); + delete m_engine; } void tst_QDeclarativeDebug::setMethodBody() diff --git a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp index 7db0e60..72af3eb 100644 --- a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp +++ b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp @@ -66,9 +66,7 @@ private slots: void initTestCase(); void name(); - void isEnabled(); - void setEnabled(); - void isConnected(); + void status(); void sendMessage(); }; @@ -96,46 +94,33 @@ void tst_QDeclarativeDebugClient::name() QCOMPARE(client.name(), name); } -void tst_QDeclarativeDebugClient::isEnabled() +void tst_QDeclarativeDebugClient::status() { - QDeclarativeDebugClient client("tst_QDeclarativeDebugClient::isEnabled()", m_conn); - QCOMPARE(client.isEnabled(), false); -} + { + QDeclarativeDebugConnection dummyConn; + QDeclarativeDebugClient client("tst_QDeclarativeDebugClient::status()", &dummyConn); + QCOMPARE(client.status(), QDeclarativeDebugClient::NotConnected); + } -void tst_QDeclarativeDebugClient::setEnabled() -{ - QDeclarativeDebugTestService service("tst_QDeclarativeDebugClient::setEnabled()"); - QDeclarativeDebugTestClient client("tst_QDeclarativeDebugClient::setEnabled()", m_conn); + QDeclarativeDebugTestClient client("tst_QDeclarativeDebugClient::status()", m_conn); + QCOMPARE(client.status(), QDeclarativeDebugClient::Unavailable); - QCOMPARE(service.isEnabled(), false); + { + QDeclarativeDebugTestService service("tst_QDeclarativeDebugClient::status()"); + QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); + QCOMPARE(client.status(), QDeclarativeDebugClient::Enabled); + } + QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); - client.setEnabled(true); - QCOMPARE(client.isEnabled(), true); - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); - QCOMPARE(service.isEnabled(), true); - - client.setEnabled(false); - QCOMPARE(client.isEnabled(), false); - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); - QCOMPARE(service.isEnabled(), false); -} - -void tst_QDeclarativeDebugClient::isConnected() -{ - QDeclarativeDebugClient client1("tst_QDeclarativeDebugClient::isConnected() A", m_conn); - QCOMPARE(client1.isConnected(), true); - - QDeclarativeDebugConnection conn; - QDeclarativeDebugClient client2("tst_QDeclarativeDebugClient::isConnected() B", &conn); - QCOMPARE(client2.isConnected(), false); - - QDeclarativeDebugClient client3("tst_QDeclarativeDebugClient::isConnected() C", 0); - QCOMPARE(client3.isConnected(), false); + QCOMPARE(client.status(), QDeclarativeDebugClient::Unavailable); // duplicate plugin name - QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugClient: Conflicting plugin name \"tst_QDeclarativeDebugClient::isConnected() A\" "); - QDeclarativeDebugClient client4("tst_QDeclarativeDebugClient::isConnected() A", m_conn); - QCOMPARE(client4.isConnected(), false); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugClient: Conflicting plugin name \"tst_QDeclarativeDebugClient::status()\" "); + QDeclarativeDebugClient client2("tst_QDeclarativeDebugClient::status()", m_conn); + QCOMPARE(client2.status(), QDeclarativeDebugClient::NotConnected); + + QDeclarativeDebugClient client3("tst_QDeclarativeDebugClient::status3()", 0); + QCOMPARE(client3.status(), QDeclarativeDebugClient::NotConnected); } void tst_QDeclarativeDebugClient::sendMessage() @@ -145,6 +130,7 @@ void tst_QDeclarativeDebugClient::sendMessage() QByteArray msg = "hello!"; + QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); client.sendMessage(msg); QByteArray resp = client.waitForResponse(); QCOMPARE(resp, msg); diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp index 4683199..bce4713 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp +++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp @@ -66,8 +66,7 @@ private slots: void initTestCase(); void name(); - void isEnabled(); - void enabledChanged(); + void status(); void sendMessage(); void idForObject(); void objectForId(); @@ -97,31 +96,24 @@ void tst_QDeclarativeDebugService::name() QCOMPARE(service.name(), name); } -void tst_QDeclarativeDebugService::isEnabled() +void tst_QDeclarativeDebugService::status() { - QDeclarativeDebugTestService service("tst_QDeclarativeDebugService::isEnabled()", m_conn); - QCOMPARE(service.isEnabled(), false); + QDeclarativeDebugTestService service("tst_QDeclarativeDebugService::status()"); + QCOMPARE(service.status(), QDeclarativeDebugService::Unavailable); - QDeclarativeDebugTestClient client("tst_QDeclarativeDebugService::isEnabled()", m_conn); - client.setEnabled(true); - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); - QCOMPARE(service.isEnabled(), true); + { + QDeclarativeDebugTestClient client("tst_QDeclarativeDebugService::status()", m_conn); + QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); + QCOMPARE(service.status(), QDeclarativeDebugService::Enabled); + } - QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugService: Conflicting plugin name \"tst_QDeclarativeDebugService::isEnabled()\" "); - QDeclarativeDebugService duplicate("tst_QDeclarativeDebugService::isEnabled()", m_conn); - QCOMPARE(duplicate.isEnabled(), false); -} - -void tst_QDeclarativeDebugService::enabledChanged() -{ - QDeclarativeDebugTestService service("tst_QDeclarativeDebugService::enabledChanged()"); - QDeclarativeDebugTestClient client("tst_QDeclarativeDebugService::enabledChanged()", m_conn); + QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); + QCOMPARE(service.status(), QDeclarativeDebugService::Unavailable); - QCOMPARE(service.enabled, false); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugService: Conflicting plugin name \"tst_QDeclarativeDebugService::status()\" "); - client.setEnabled(true); - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(enabledStateChanged())); - QCOMPARE(service.enabled, true); + QDeclarativeDebugService duplicate("tst_QDeclarativeDebugService::status()"); + QCOMPARE(duplicate.status(), QDeclarativeDebugService::NotConnected); } void tst_QDeclarativeDebugService::sendMessage() @@ -131,6 +123,11 @@ void tst_QDeclarativeDebugService::sendMessage() QByteArray msg = "hello!"; + if (service.status() != QDeclarativeDebugService::Enabled) + QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); + if (client.status() != QDeclarativeDebugClient::Enabled) + QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); + client.sendMessage(msg); QByteArray resp = client.waitForResponse(); QCOMPARE(resp, msg); diff --git a/tests/auto/declarative/shared/debugutil.cpp b/tests/auto/declarative/shared/debugutil.cpp index c0c3eca..5f68e44 100644 --- a/tests/auto/declarative/shared/debugutil.cpp +++ b/tests/auto/declarative/shared/debugutil.cpp @@ -60,7 +60,7 @@ bool QDeclarativeDebugTest::waitForSignal(QObject *receiver, const char *member, } QDeclarativeDebugTestService::QDeclarativeDebugTestService(const QString &s, QObject *parent) - : QDeclarativeDebugService(s, parent), enabled(false) + : QDeclarativeDebugService(s, parent) { } @@ -69,10 +69,9 @@ void QDeclarativeDebugTestService::messageReceived(const QByteArray &ba) sendMessage(ba); } -void QDeclarativeDebugTestService::enabledChanged(bool e) +void QDeclarativeDebugTestService::statusChanged(Status) { - enabled = e; - emit enabledStateChanged(); + emit statusHasChanged(); } @@ -92,9 +91,13 @@ QByteArray QDeclarativeDebugTestClient::waitForResponse() return lastMsg; } +void QDeclarativeDebugTestClient::statusChanged(Status status) +{ + emit statusHasChanged(); +} + void QDeclarativeDebugTestClient::messageReceived(const QByteArray &ba) { lastMsg = ba; emit serverMessage(ba); } - diff --git a/tests/auto/declarative/shared/debugutil_p.h b/tests/auto/declarative/shared/debugutil_p.h index e6bb7ad..434e053 100644 --- a/tests/auto/declarative/shared/debugutil_p.h +++ b/tests/auto/declarative/shared/debugutil_p.h @@ -62,15 +62,13 @@ class QDeclarativeDebugTestService : public QDeclarativeDebugService Q_OBJECT public: QDeclarativeDebugTestService(const QString &s, QObject *parent = 0); - bool enabled; signals: - void enabledStateChanged(); + void statusHasChanged(); protected: virtual void messageReceived(const QByteArray &ba); - - virtual void enabledChanged(bool e); + virtual void statusChanged(Status status); }; class QDeclarativeDebugTestClient : public QDeclarativeDebugClient @@ -82,9 +80,11 @@ public: QByteArray waitForResponse(); signals: + void statusHasChanged(); void serverMessage(const QByteArray &); protected: + virtual void statusChanged(Status status); virtual void messageReceived(const QByteArray &ba); private: -- cgit v0.12 From 31dcf2b4028b1f76301fc69fccff0a9474a0a135 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 27 Sep 2010 10:56:00 +0200 Subject: QDeclarativeDebugService: Add bc autotest Although it's a private header we use qdeclarativedebugservice_p.h in creator / qmljsdebugger library. Working with a copy of the header in the autotest hopefully catches some bc breakages. --- .../private_headers/qdeclarativedebugservice_p.h | 92 ++++++++++++++++++++++ .../qdeclarativedebugservice.pro | 3 +- .../tst_qdeclarativedebugservice.cpp | 2 +- 3 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h diff --git a/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h b/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h new file mode 100644 index 0000000..0cadbe5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVEDEBUGSERVICE_H +#define QDECLARATIVEDEBUGSERVICE_H + +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QDeclarativeDebugServicePrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeDebugService : public QObject +{ + Q_OBJECT + Q_DECLARE_PRIVATE(QDeclarativeDebugService) + Q_DISABLE_COPY(QDeclarativeDebugService) + +public: + explicit QDeclarativeDebugService(const QString &, QObject *parent = 0); + ~QDeclarativeDebugService(); + + QString name() const; + + enum Status { NotConnected, Unavailable, Enabled }; + Status status() const; + + void sendMessage(const QByteArray &); + + static int idForObject(QObject *); + static QObject *objectForId(int); + + static QString objectToString(QObject *obj); + + static bool isDebuggingEnabled(); + static bool hasDebuggingClient(); + +protected: + virtual void statusChanged(Status); + virtual void messageReceived(const QByteArray &); + +private: + friend class QDeclarativeDebugServer; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QDECLARATIVEDEBUGSERVICE_H + diff --git a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro index a62e148..83bcadb 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro +++ b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro @@ -2,7 +2,8 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += network declarative macx:CONFIG -= app_bundle -HEADERS += ../shared/debugutil_p.h +HEADERS += ../shared/debugutil_p.h \ + private_headers/qdeclarativedebugservice_p.h SOURCES += tst_qdeclarativedebugservice.cpp \ ../shared/debugutil.cpp diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp index bce4713..945823a 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp +++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp @@ -50,8 +50,8 @@ #include #include #include -#include +#include "private_headers/qdeclarativedebugservice_p.h" #include "../../../shared/util.h" #include "../shared/debugutil_p.h" -- cgit v0.12 From a42989e696eac94221ddb781a133afaec5b48b12 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 28 Sep 2010 09:43:35 +0200 Subject: QmlViewer: Fix assert on exit (Windows) The QApplication object in main() is already destroyed when showWarnings() is called. Create another instance in this case. (Note that the assert will only be triggered for debug builds, while qmlviewer is built in release mode by default). Task-number: QTBUG-14009 Reviewed-by: Thomas Hartmann --- tools/qml/main.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index 78cd64d..bf183e5 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -89,6 +89,9 @@ QString warnings; void showWarnings() { if (!warnings.isEmpty()) { + int argc = 0; char **argv = 0; + QApplication application(argc, argv); // QApplication() in main has been destroyed already. + Q_UNUSED(application) QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings); } } -- cgit v0.12 From cf4c64a8f155c179f51d2cddd81bae4701826871 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 28 Sep 2010 09:54:11 +0200 Subject: QmlViewer: Fix typo in comment --- tools/qml/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index bf183e5..00d43c1 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -519,7 +519,7 @@ int main(int argc, char ** argv) #if defined (Q_OS_WIN) // Debugging output is not visible by default on Windows - - // therefore show modal dialog with errors instad. + // therefore show modal dialog with errors instead. atexit(showWarnings); #endif -- cgit v0.12 From 746954581f06e0bca98f25eb95dca09c663d47bf Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 28 Sep 2010 18:50:18 +1000 Subject: If a type is registered under several names, share the attached property object Task-number: QTBUG-13799 --- .../qml/qdeclarativecompiledbindings.cpp | 10 ++++----- src/declarative/qml/qdeclarativecompiler.cpp | 2 +- src/declarative/qml/qdeclarativemetatype.cpp | 25 +++++++++++++++++++++- src/declarative/qml/qdeclarativemetatype_p.h | 1 + src/declarative/qml/qdeclarativeproperty.cpp | 4 ++-- .../qml/qdeclarativetypenamescriptclass.cpp | 2 +- .../data/sharedAttachedObject.qml | 16 ++++++++++++++ .../qdeclarativeecmascript/testtypes.cpp | 1 + .../tst_qdeclarativeecmascript.cpp | 11 ++++++++++ 9 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp index 9402596..5f0fd56 100644 --- a/src/declarative/qml/qdeclarativecompiledbindings.cpp +++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp @@ -438,7 +438,7 @@ struct Instr { qint8 output; qint8 reg; quint8 exceptionId; - quint32 index; + quint32 id; } attached; struct { QML_INSTR_HEADER @@ -988,7 +988,7 @@ static void dumpInstruction(const Instr *instr) qWarning().nospace() << "\t" << "LoadRoot" << "\t\t" << instr->load.index << "\t" << instr->load.reg; break; case Instr::LoadAttached: - qWarning().nospace() << "\t" << "LoadAttached" << "\t\t" << instr->attached.output << "\t" << instr->attached.reg << "\t" << instr->attached.index; + qWarning().nospace() << "\t" << "LoadAttached" << "\t\t" << instr->attached.output << "\t" << instr->attached.reg << "\t" << instr->attached.id; break; case Instr::ConvertIntToReal: qWarning().nospace() << "\t" << "ConvertIntToReal" << "\t" << instr->unaryop.output << "\t" << instr->unaryop.src; @@ -1225,7 +1225,7 @@ void QDeclarativeCompiledBindingsPrivate::run(int instrIndex, output.setUndefined(); } else { QObject *attached = - qmlAttachedPropertiesObjectById(instr->attached.index, + qmlAttachedPropertiesObjectById(instr->attached.id, registers[instr->attached.reg].getQObject(), true); Q_ASSERT(attached); @@ -1895,7 +1895,7 @@ bool QDeclarativeBindingCompilerPrivate::parseName(AST::Node *node, Result &type attach.common.type = Instr::LoadAttached; attach.attached.output = reg; attach.attached.reg = reg; - attach.attached.index = attachType->index(); + attach.attached.id = attachType->attachedPropertiesId(); attach.attached.exceptionId = exceptionId(nameNodes.at(ii)); bytecode << attach; @@ -2011,7 +2011,7 @@ bool QDeclarativeBindingCompilerPrivate::parseName(AST::Node *node, Result &type attach.common.type = Instr::LoadAttached; attach.attached.output = reg; attach.attached.reg = reg; - attach.attached.index = attachType->index(); + attach.attached.id = attachType->attachedPropertiesId(); bytecode << attach; absType = 0; diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index e55dc92..8c5fd3a 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -1407,7 +1407,7 @@ bool QDeclarativeCompiler::buildProperty(QDeclarativeParser::Property *prop, COMPILE_EXCEPTION(prop, tr("Invalid attached object assignment")); Q_ASSERT(type->attachedPropertiesFunction()); - prop->index = type->index(); + prop->index = type->attachedPropertiesId(); prop->value->metatype = type->attachedPropertiesType(); } else { // Setup regular property data diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp index a5c878f..7a78a1f 100644 --- a/src/declarative/qml/qdeclarativemetatype.cpp +++ b/src/declarative/qml/qdeclarativemetatype.cpp @@ -146,6 +146,7 @@ public: const QMetaObject *m_baseMetaObject; QDeclarativeAttachedPropertiesFunc m_attachedPropertiesFunc; const QMetaObject *m_attachedPropertiesType; + int m_attachedPropertiesId; int m_parserStatusCast; int m_propertyValueSourceCast; int m_propertyValueInterceptorCast; @@ -155,8 +156,12 @@ public: QDeclarativeCustomParser *m_customParser; mutable volatile bool m_isSetup:1; mutable QList m_metaObjects; + + static QHash m_attachedPropertyIds; }; +QHash QDeclarativeTypePrivate::m_attachedPropertyIds; + QDeclarativeTypePrivate::QDeclarativeTypePrivate() : m_isInterface(false), m_iid(0), m_typeId(0), m_listId(0), m_allocationSize(0), m_newFunc(0), m_baseMetaObject(0), m_attachedPropertiesFunc(0), m_attachedPropertiesType(0), @@ -198,6 +203,14 @@ QDeclarativeType::QDeclarativeType(int index, const QDeclarativePrivate::Registe d->m_baseMetaObject = type.metaObject; d->m_attachedPropertiesFunc = type.attachedPropertiesFunction; d->m_attachedPropertiesType = type.attachedPropertiesMetaObject; + if (d->m_attachedPropertiesType) { + QHash::Iterator iter = d->m_attachedPropertyIds.find(d->m_baseMetaObject); + if (iter == d->m_attachedPropertyIds.end()) + iter = d->m_attachedPropertyIds.insert(d->m_baseMetaObject, index); + d->m_attachedPropertiesId = *iter; + } else { + d->m_attachedPropertiesId = -1; + } d->m_parserStatusCast = type.parserStatusCast; d->m_propertyValueSourceCast = type.valueSourceCast; d->m_propertyValueInterceptorCast = type.valueInterceptorCast; @@ -461,6 +474,16 @@ const QMetaObject *QDeclarativeType::attachedPropertiesType() const return d->m_attachedPropertiesType; } +/* +This is the id passed to qmlAttachedPropertiesById(). This is different from the index +for the case that a single class is registered under two or more names (eg. Item in +Qt 4.7 and QtQuick 1.0). +*/ +int QDeclarativeType::attachedPropertiesId() const +{ + return d->m_attachedPropertiesId; +} + int QDeclarativeType::parserStatusCast() const { return d->m_parserStatusCast; @@ -662,7 +685,7 @@ int QDeclarativeMetaType::attachedPropertiesFuncId(const QMetaObject *mo) QDeclarativeType *type = data->metaObjectToType.value(mo); if (type && type->attachedPropertiesFunction()) - return type->index(); + return type->attachedPropertiesId(); else return -1; } diff --git a/src/declarative/qml/qdeclarativemetatype_p.h b/src/declarative/qml/qdeclarativemetatype_p.h index f410547..382abd2 100644 --- a/src/declarative/qml/qdeclarativemetatype_p.h +++ b/src/declarative/qml/qdeclarativemetatype_p.h @@ -137,6 +137,7 @@ public: QDeclarativeAttachedPropertiesFunc attachedPropertiesFunction() const; const QMetaObject *attachedPropertiesType() const; + int attachedPropertiesId() const; int parserStatusCast() const; QVariant fromObject(QObject *) const; diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index d0dd2e8..bc20bff 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -220,7 +220,7 @@ void QDeclarativePropertyPrivate::initProperty(QObject *obj, const QString &name QDeclarativeAttachedPropertiesFunc func = data->type->attachedPropertiesFunction(); if (!func) return; // Not an attachable type - currentObject = qmlAttachedPropertiesObjectById(data->type->index(), currentObject); + currentObject = qmlAttachedPropertiesObjectById(data->type->attachedPropertiesId(), currentObject); if (!currentObject) return; // Something is broken with the attachable type } else { Q_ASSERT(data->typeNamespace); @@ -232,7 +232,7 @@ void QDeclarativePropertyPrivate::initProperty(QObject *obj, const QString &name QDeclarativeAttachedPropertiesFunc func = data->type->attachedPropertiesFunction(); if (!func) return; // Not an attachable type - currentObject = qmlAttachedPropertiesObjectById(data->type->index(), currentObject); + currentObject = qmlAttachedPropertiesObjectById(data->type->attachedPropertiesId(), currentObject); if (!currentObject) return; // Something is broken with the attachable type } } else { diff --git a/src/declarative/qml/qdeclarativetypenamescriptclass.cpp b/src/declarative/qml/qdeclarativetypenamescriptclass.cpp index 764a8db..cba7b4a 100644 --- a/src/declarative/qml/qdeclarativetypenamescriptclass.cpp +++ b/src/declarative/qml/qdeclarativetypenamescriptclass.cpp @@ -129,7 +129,7 @@ QDeclarativeTypeNameScriptClass::queryProperty(Object *obj, const Identifier &na return 0; } else if (data->object) { // Must be an attached property - object = qmlAttachedPropertiesObjectById(data->type->index(), data->object); + object = qmlAttachedPropertiesObjectById(data->type->attachedPropertiesId(), data->object); if (!object) return 0; return ep->objectClass->queryProperty(object, name, flags, 0); } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml new file mode 100644 index 0000000..817391d --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml @@ -0,0 +1,16 @@ +import Qt.test 1.0 +import Qt 4.7 + +MyQmlObject { + id: root + property bool test1: false + property bool test2: false + + MyQmlObject.value2: 7 + + Component.onCompleted: { + test1 = root.MyQmlObject.value2 == 7; + test2 = root.MyQmlObjectAlias.value2 == 7; + } +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp index 8a4605a..810a0f7 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp @@ -102,6 +102,7 @@ public: void registerTypes() { + qmlRegisterType("Qt.test", 1,0, "MyQmlObjectAlias"); qmlRegisterType("Qt.test", 1,0, "MyQmlObject"); qmlRegisterType("Qt.test", 1,0, "MyDeferredObject"); qmlRegisterType("Qt.test", 1,0, "MyQmlContainer"); diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index c10a110..4feb630 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -161,6 +161,7 @@ private slots: void nonscriptable(); void deleteLater(); void in(); + void sharedAttachedObject(); void include(); @@ -2583,6 +2584,16 @@ void tst_qdeclarativeecmascript::in() delete o; } +void tst_qdeclarativeecmascript::sharedAttachedObject() +{ + QDeclarativeComponent component(&engine, TEST_FILE("sharedAttachedObject.qml")); + QObject *o = component.create(); + QVERIFY(o != 0); + QCOMPARE(o->property("test1").toBool(), true); + QCOMPARE(o->property("test2").toBool(), true); + delete o; +} + QTEST_MAIN(tst_qdeclarativeecmascript) #include "tst_qdeclarativeecmascript.moc" -- cgit v0.12 From 30959e88498b2c8591145e30c8b497a76c12d8f6 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 28 Sep 2010 12:24:55 +0200 Subject: QmlDebugService: Check that there is a receiver before sending messages Reviewed-by: Christiaan Janssen --- src/declarative/debugger/qdeclarativedebugservice.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp index 0fbc1e3..62f2f39 100644 --- a/src/declarative/debugger/qdeclarativedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativedebugservice.cpp @@ -182,7 +182,9 @@ void QDeclarativeDebugServer::newConnection() bool QDeclarativeDebugServer::hasDebuggingClient() const { Q_D(const QDeclarativeDebugServer); - return d->gotHello; + return d->connection + && (d->connection->state() == QTcpSocket::ConnectedState) + && d->gotHello; } QDeclarativeDebugServer *QDeclarativeDebugServer::instance() @@ -485,7 +487,7 @@ void QDeclarativeDebugService::sendMessage(const QByteArray &message) { Q_D(QDeclarativeDebugService); - if (!d->server || !d->server->d_func()->connection) + if (status() != Enabled) return; QPacket pack; -- cgit v0.12 From 9caae83e1f2b9c56ee86b8523391e6a83ea724c5 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Tue, 28 Sep 2010 12:48:13 +0200 Subject: QDeclarativeDebugClient: Fix gcc warning --- src/declarative/debugger/qdeclarativedebugclient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index f7d7243..ce3faf6 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -277,7 +277,7 @@ void QDeclarativeDebugClient::sendMessage(const QByteArray &message) d->client->d->protocol->send(pack); } -void QDeclarativeDebugClient::statusChanged(Status status) +void QDeclarativeDebugClient::statusChanged(Status) { } -- cgit v0.12 From e67092d630d795e2cdca6f2be70c7e684a12a67c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 28 Sep 2010 08:49:56 +1000 Subject: Documentation fix for Flickable (mark content properties as real, not int). --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 84b0ccf..f9c16b3 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -456,8 +456,8 @@ QDeclarativeFlickable::~QDeclarativeFlickable() } /*! - \qmlproperty int Flickable::contentX - \qmlproperty int Flickable::contentY + \qmlproperty real Flickable::contentX + \qmlproperty real Flickable::contentY These properties hold the surface coordinate currently at the top-left corner of the Flickable. For example, if you flick an image up 100 pixels, @@ -1154,8 +1154,8 @@ void QDeclarativeFlickable::setBoundsBehavior(BoundsBehavior b) } /*! - \qmlproperty int Flickable::contentWidth - \qmlproperty int Flickable::contentHeight + \qmlproperty real Flickable::contentWidth + \qmlproperty real Flickable::contentHeight The dimensions of the content (the surface controlled by Flickable). Typically this should be set to the combined size of the items placed in the Flickable. Note this -- cgit v0.12 From 2784fe7be27afd80f6da69a683ed7aec91734de8 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 28 Sep 2010 11:13:48 +1000 Subject: Documentation. --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 4 +- src/declarative/graphicsitems/qdeclarativepath.cpp | 118 +++++++++++++++++---- 2 files changed, 98 insertions(+), 24 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index e9da4f7..49b7ad3 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1745,8 +1745,8 @@ void QDeclarativeItemPrivate::parentProperty(QObject *o, void *rv, QDeclarativeN \qmlproperty list Item::data \default - The data property is allows you to freely mix visual children and resources - of an item. If you assign a visual item to the data list it becomes + The data property allows you to freely mix visual children and resources + in an item. If you assign a visual item to the data list it becomes a child and if you assign any other object type, it is added as a resource. So you can write: diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index f93357d..717da1e 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -491,17 +491,17 @@ void QDeclarativeCurve::setY(qreal y) \since 4.7 \brief The PathAttribute allows setting an attribute at a given position in a Path. - The PathAttribute object allows attibutes consisting of a name and - a value to be specified for the endpoints of path segments. The + The PathAttribute object allows attributes consisting of a name and + a value to be specified for various points along a path. The attributes are exposed to the delegate as \l{qdeclarativeintroduction.html#attached-properties} {Attached Properties}. - The value of an attribute at any particular point is interpolated - from the PathAttributes bounding the point. + The value of an attribute at any particular point along the path is interpolated + from the PathAttributes bounding that point. The example below shows a path with the items scaled to 30% with opacity 50% at the top of the path and scaled 100% with opacity - 100% at the bottom. Note the use of the PathView.scale and - PathView.opacity attached properties to set the scale and opacity + 100% at the bottom. Note the use of the PathView.iconScale and + PathView.iconOpacity attached properties to set the scale and opacity of the delegate. \table @@ -509,14 +509,17 @@ void QDeclarativeCurve::setY(qreal y) \o \image declarative-pathattribute.png \o \snippet doc/src/snippets/declarative/pathview/pathattributes.qml 0 + (see the PathView documentation for the specification of ContactModel.qml + used for ContactModel above.) \endtable - \sa Path + + \sa Path */ /*! \qmlproperty string PathAttribute::name - the name of the attribute to change. + This property holds the name of the attribute to change. This attribute will be available to the delegate as PathView. @@ -545,7 +548,38 @@ void QDeclarativePathAttribute::setName(const QString &name) /*! \qmlproperty string PathAttribute::value - the new value of the attribute. + This property holds the value for the attribute. + + The value specified can be used to influence the visual appearance + of an item along the path. For example, the following Path specifies + an attribute named \e itemRotation, which has the value \e 0 at the + beginning of the path, and the value 90 at the end of the path. + + \qml + Path { + startX: 0 + startY: 0 + PathAttribute { name: "itemRotation"; value: 0 } + PathLine { x: 100; y: 100 } + PathAttribute { name: "itemRotation"; value: 90 } + } + \endqml + + In our delegate, we can then bind the \e rotation property to the + \l{qdeclarativeintroduction.html#attached-properties} {Attached Property} + \e PathView.itemRotation created for this attribute. + + \qml + Rectangle { + width: 10; height: 10 + rotation: PathView.itemRotation + } + \endqml + + As each item is positioned along the path, it will be rotated accordingly: + an item at the beginning of the path with be not be rotated, an item at + the end of the path will be rotated 90 degrees, and an item mid-way along + the path will be rotated 45 degrees. */ /*! @@ -792,6 +826,10 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \since 4.7 \brief The PathPercent manipulates the way a path is interpreted. + PathPercent allows you to manipulate the spacing between items on a + PathView's path. You can use it to bunch together items on part of + the path, and spread them out on other parts of the path. + The examples below show the normal distrubution of items along a path compared to a distribution which places 50% of the items along the PathLine section of the path. @@ -800,25 +838,31 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \o \image declarative-nopercent.png \o \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathLine { x: 150; y: 80 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + PathView { + ... + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathLine { x: 150; y: 80 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + } } \endqml \row \o \image declarative-percent.png \o \qml - Path { - startX: 20; startY: 0 - PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } - PathPercent { value: 0.25 } - PathLine { x: 150; y: 80 } - PathPercent { value: 0.75 } - PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } - PathPercent { value: 1 } + PathView { + ... + Path { + startX: 20; startY: 0 + PathQuad { x: 50; y: 80; controlX: 0; controlY: 80 } + PathPercent { value: 0.25 } + PathLine { x: 150; y: 80 } + PathPercent { value: 0.75 } + PathQuad { x: 180; y: 0; controlX: 200; controlY: 80 } + PathPercent { value: 1 } + } } \endqml \endtable @@ -826,6 +870,36 @@ void QDeclarativePathCubic::addToPath(QPainterPath &path) \sa Path */ +/*! + \qmlproperty real value + The proporation of items that should be laid out up to this point. + + This value should always be higher than the last value specified + by a PathPercent at a previous position in the Path. + + In the following example we have a Path made up of three PathLines. + Normally, the items of the PathView would be laid out equally along + this path, with an equal number of items per line segment. PathPercent + allows us to specify that the first and third lines should each hold + 10% of the laid out items, while the second line should hold the remaining + 80%. + + \qml + PathView { + ... + Path { + startX: 0; startY: 0 + PathLine { x:100; y: 0; } + PathPercent { value: 0.1 } + PathLine { x: 100; y: 100 } + PathPercent { value: 0.9 } + PathLine { x: 100; y: 0 } + PathPercent { value: 1 } + } + } + \endqml +*/ + qreal QDeclarativePathPercent::value() const { return _value; -- cgit v0.12 From 085a121cb1ebba38d62c924500dbc71806b29b3c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 28 Sep 2010 13:55:04 +1000 Subject: Fix crash when trying to append a null transform to QDeclarativeItem. Task-number: QTBUG-13893 --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 2 +- .../declarative/qdeclarativeitem/data/transformCrash.qml | 13 +++++++++++++ .../declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp | 12 ++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 49b7ad3..7a827d3 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1705,7 +1705,7 @@ int QDeclarativeItemPrivate::transform_count(QDeclarativeListProperty *list, QGraphicsTransform *item) { QGraphicsObject *object = qobject_cast(list->object); - if (object) // QGraphicsItem applies the list in the wrong order, so we prepend. + if (object && item) // QGraphicsItem applies the list in the wrong order, so we prepend. QGraphicsItemPrivate::get(object)->prependGraphicsTransform(item); } diff --git a/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml b/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml new file mode 100644 index 0000000..ab7fa84 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml @@ -0,0 +1,13 @@ +import Qt 4.7 + +Item { + id: wrapper + width: 200 + height: 200 + + QtObject { + id: object + } + + Component.onCompleted: wrapper.transform = object +} diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp index 25ca157..6b28c53 100644 --- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp +++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp @@ -81,6 +81,8 @@ private slots: void resourcesProperty(); void mouseFocus(); + void transformCrash(); + private: template T *findItem(QGraphicsObject *parent, const QString &objectName); @@ -792,6 +794,16 @@ void tst_QDeclarativeItem::childrenRectBug3() delete canvas; } +// QTBUG-13893 +void tst_QDeclarativeItem::transformCrash() +{ + QDeclarativeView *canvas = new QDeclarativeView(0); + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/transformCrash.qml")); + canvas->show(); + + delete canvas; +} + template T *tst_QDeclarativeItem::findItem(QGraphicsObject *parent, const QString &objectName) { -- cgit v0.12 From 59b45dfeaa0ee7715cc70464dc8db622544ee90c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Tue, 28 Sep 2010 15:04:09 +1000 Subject: Remove unused AST node destructors. NodePool does a block free on the memory, so the (empty) destructors are never called, and add lots of noise to code coverage analysis. Added a note in the source about the block freeing. --- src/declarative/qml/parser/qdeclarativejsast_p.h | 149 +---------------------- 1 file changed, 3 insertions(+), 146 deletions(-) diff --git a/src/declarative/qml/parser/qdeclarativejsast_p.h b/src/declarative/qml/parser/qdeclarativejsast_p.h index 0623a2a..541ea7f 100644 --- a/src/declarative/qml/parser/qdeclarativejsast_p.h +++ b/src/declarative/qml/parser/qdeclarativejsast_p.h @@ -224,6 +224,9 @@ public: inline Node() : kind(Kind_Undefined) {} + // NOTE: node destructors are never called, + // instead we block free the memory + // (see the NodePool class) virtual ~Node() {} virtual ExpressionNode *expressionCast(); @@ -247,7 +250,6 @@ class QML_PARSER_EXPORT ExpressionNode: public Node { public: ExpressionNode() {} - virtual ~ExpressionNode() {} virtual ExpressionNode *expressionCast(); @@ -259,7 +261,6 @@ class QML_PARSER_EXPORT Statement: public Node { public: Statement() {} - virtual ~Statement() {} virtual Statement *statementCast(); @@ -379,7 +380,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(ThisExpression) ThisExpression() { kind = K; } - virtual ~ThisExpression() {} virtual void accept0(Visitor *visitor); @@ -401,8 +401,6 @@ public: IdentifierExpression(NameId *n): name (n) { kind = K; } - virtual ~IdentifierExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -422,7 +420,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(NullExpression) NullExpression() { kind = K; } - virtual ~NullExpression() {} virtual void accept0(Visitor *visitor); @@ -442,7 +439,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(TrueLiteral) TrueLiteral() { kind = K; } - virtual ~TrueLiteral() {} virtual void accept0(Visitor *visitor); @@ -462,7 +458,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(FalseLiteral) FalseLiteral() { kind = K; } - virtual ~FalseLiteral() {} virtual void accept0(Visitor *visitor); @@ -483,7 +478,6 @@ public: NumericLiteral(double v): value(v) { kind = K; } - virtual ~NumericLiteral() {} virtual void accept0(Visitor *visitor); @@ -506,8 +500,6 @@ public: StringLiteral(NameId *v): value (v) { kind = K; } - virtual ~StringLiteral() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -529,8 +521,6 @@ public: RegExpLiteral(NameId *p, int f): pattern (p), flags (f) { kind = K; } - virtual ~RegExpLiteral() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -562,8 +552,6 @@ public: elements (elts), elision (e) { kind = K; } - virtual ~ArrayLiteral() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -591,8 +579,6 @@ public: ObjectLiteral(PropertyNameAndValueList *plist): properties (plist) { kind = K; } - virtual ~ObjectLiteral() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -624,8 +610,6 @@ public: previous->next = this; } - virtual ~ElementList() {} - inline ElementList *finish () { ElementList *front = next; @@ -657,8 +641,6 @@ public: previous->next = this; } - virtual ~Elision() {} - virtual void accept0(Visitor *visitor); inline Elision *finish () @@ -690,8 +672,6 @@ public: previous->next = this; } - virtual ~PropertyNameAndValueList() {} - virtual void accept0(Visitor *visitor); inline PropertyNameAndValueList *finish () @@ -715,7 +695,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(PropertyName) PropertyName() { kind = K; } - virtual ~PropertyName() {} // attributes SourceLocation propertyNameToken; @@ -729,8 +708,6 @@ public: IdentifierPropertyName(NameId *n): id (n) { kind = K; } - virtual ~IdentifierPropertyName() {} - virtual void accept0(Visitor *visitor); // attributes @@ -744,7 +721,6 @@ public: StringLiteralPropertyName(NameId *n): id (n) { kind = K; } - virtual ~StringLiteralPropertyName() {} virtual void accept0(Visitor *visitor); @@ -759,7 +735,6 @@ public: NumericLiteralPropertyName(double n): id (n) { kind = K; } - virtual ~NumericLiteralPropertyName() {} virtual void accept0(Visitor *visitor); @@ -776,8 +751,6 @@ public: base (b), expression (e) { kind = K; } - virtual ~ArrayMemberExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -802,8 +775,6 @@ public: base (b), name (n) { kind = K; } - virtual ~FieldMemberExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -828,8 +799,6 @@ public: base (b), arguments (a) { kind = K; } - virtual ~NewMemberExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -854,8 +823,6 @@ public: NewExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~NewExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -878,8 +845,6 @@ public: base (b), arguments (a) { kind = K; } - virtual ~CallExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -912,8 +877,6 @@ public: previous->next = this; } - virtual ~ArgumentList() {} - virtual void accept0(Visitor *visitor); inline ArgumentList *finish () @@ -937,8 +900,6 @@ public: PostIncrementExpression(ExpressionNode *b): base (b) { kind = K; } - virtual ~PostIncrementExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -960,8 +921,6 @@ public: PostDecrementExpression(ExpressionNode *b): base (b) { kind = K; } - virtual ~PostDecrementExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -982,7 +941,6 @@ public: DeleteExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~DeleteExpression() {} virtual void accept0(Visitor *visitor); @@ -1005,8 +963,6 @@ public: VoidExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~VoidExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1028,8 +984,6 @@ public: TypeOfExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~TypeOfExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1051,8 +1005,6 @@ public: PreIncrementExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~PreIncrementExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1074,8 +1026,6 @@ public: PreDecrementExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~PreDecrementExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1097,8 +1047,6 @@ public: UnaryPlusExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~UnaryPlusExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1120,8 +1068,6 @@ public: UnaryMinusExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~UnaryMinusExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1143,8 +1089,6 @@ public: TildeExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~TildeExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1166,8 +1110,6 @@ public: NotExpression(ExpressionNode *e): expression (e) { kind = K; } - virtual ~NotExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1190,8 +1132,6 @@ public: left (l), op (o), right (r) { kind = K; } - virtual ~BinaryExpression() {} - virtual BinaryExpression *binaryExpressionCast(); virtual void accept0(Visitor *visitor); @@ -1218,8 +1158,6 @@ public: expression (e), ok (t), ko (f) { kind = K; } - virtual ~ConditionalExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1244,8 +1182,6 @@ public: Expression(ExpressionNode *l, ExpressionNode *r): left (l), right (r) { kind = K; } - virtual ~Expression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1268,8 +1204,6 @@ public: Block(StatementList *slist): statements (slist) { kind = K; } - virtual ~Block() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1301,8 +1235,6 @@ public: previous->next = this; } - virtual ~StatementList() {} - virtual void accept0(Visitor *visitor); inline StatementList *finish () @@ -1326,8 +1258,6 @@ public: declarations (vlist) { kind = K; } - virtual ~VariableStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1351,8 +1281,6 @@ public: name (n), expression (e), readOnly(false) { kind = K; } - virtual ~VariableDeclaration() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1379,8 +1307,6 @@ public: previous->next = this; } - virtual ~VariableDeclarationList() {} - virtual void accept0(Visitor *visitor); inline VariableDeclarationList *finish (bool readOnly) @@ -1407,7 +1333,6 @@ public: QDECLARATIVEJS_DECLARE_AST_NODE(EmptyStatement) EmptyStatement() { kind = K; } - virtual ~EmptyStatement() {} virtual void accept0(Visitor *visitor); @@ -1429,8 +1354,6 @@ public: ExpressionStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual ~ExpressionStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1453,8 +1376,6 @@ public: expression (e), ok (t), ko (f) { kind = K; } - virtual ~IfStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1487,8 +1408,6 @@ public: statement (stmt), expression (e) { kind = K; } - virtual ~DoWhileStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1516,8 +1435,6 @@ public: expression (e), statement (stmt) { kind = K; } - virtual ~WhileStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1543,8 +1460,6 @@ public: initialiser (i), condition (c), expression (e), statement (stmt) { kind = K; } - virtual ~ForStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1574,8 +1489,6 @@ public: declarations (vlist), condition (c), expression (e), statement (stmt) { kind = K; } - virtual ~LocalForStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1606,8 +1519,6 @@ public: initialiser (i), expression (e), statement (stmt) { kind = K; } - virtual ~ForEachStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1635,8 +1546,6 @@ public: declaration (v), expression (e), statement (stmt) { kind = K; } - virtual ~LocalForEachStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1664,8 +1573,6 @@ public: ContinueStatement(NameId *l = 0): label (l) { kind = K; } - virtual ~ContinueStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1689,8 +1596,6 @@ public: BreakStatement(NameId *l = 0): label (l) { kind = K; } - virtual ~BreakStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1714,8 +1619,6 @@ public: ReturnStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual ~ReturnStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1739,8 +1642,6 @@ public: expression (e), statement (stmt) { kind = K; } - virtual ~WithStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1766,8 +1667,6 @@ public: clauses (c), defaultClause (d), moreClauses (r) { kind = K; } - virtual ~CaseBlock() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1787,8 +1686,6 @@ public: expression (e), block (b) { kind = K; } - virtual ~SwitchStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1822,8 +1719,6 @@ public: previous->next = this; } - virtual ~CaseClauses() {} - virtual void accept0(Visitor *visitor); inline CaseClauses *finish () @@ -1847,8 +1742,6 @@ public: expression (e), statements (slist) { kind = K; } - virtual ~CaseClause() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1867,8 +1760,6 @@ public: statements (slist) { kind = K; } - virtual ~DefaultClause() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1886,8 +1777,6 @@ public: label (l), statement (stmt) { kind = K; } - virtual ~LabelledStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1911,8 +1800,6 @@ public: ThrowStatement(ExpressionNode *e): expression (e) { kind = K; } - virtual ~ThrowStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -1936,8 +1823,6 @@ public: name (n), statement (stmt) { kind = K; } - virtual ~Catch() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1958,8 +1843,6 @@ public: statement (stmt) { kind = K; } - virtual ~Finally() {} - virtual void accept0(Visitor *visitor); // attributes @@ -1984,8 +1867,6 @@ public: statement (stmt), catchExpression (c), finallyExpression (0) { kind = K; } - virtual ~TryStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -2017,8 +1898,6 @@ public: name (n), formals (f), body (b) { kind = K; } - virtual ~FunctionExpression() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -2048,8 +1927,6 @@ public: FunctionExpression(n, f, b) { kind = K; } - virtual ~FunctionDeclaration() {} - virtual void accept0(Visitor *visitor); }; @@ -2070,8 +1947,6 @@ public: previous->next = this; } - virtual ~FormalParameterList() {} - virtual void accept0(Visitor *visitor); inline FormalParameterList *finish () @@ -2097,8 +1972,6 @@ public: elements (elts) { kind = K; } - virtual ~FunctionBody() {} - virtual void accept0(Visitor *visitor); // attributes @@ -2114,8 +1987,6 @@ public: elements (elts) { kind = K; } - virtual ~Program() {} - virtual void accept0(Visitor *visitor); // attributes @@ -2139,8 +2010,6 @@ public: previous->next = this; } - virtual ~SourceElements() {} - virtual void accept0(Visitor *visitor); inline SourceElements *finish () @@ -2162,8 +2031,6 @@ public: inline SourceElement() { kind = K; } - - virtual ~SourceElement() {} }; class QML_PARSER_EXPORT FunctionSourceElement: public SourceElement @@ -2175,8 +2042,6 @@ public: declaration (f) { kind = K; } - virtual ~FunctionSourceElement() {} - virtual void accept0(Visitor *visitor); // attributes @@ -2192,8 +2057,6 @@ public: statement (stmt) { kind = K; } - virtual ~StatementSourceElement() {} - virtual void accept0(Visitor *visitor); // attributes @@ -2208,8 +2071,6 @@ public: DebuggerStatement() { kind = K; } - virtual ~DebuggerStatement() {} - virtual void accept0(Visitor *visitor); virtual SourceLocation firstSourceLocation() const @@ -2256,8 +2117,6 @@ public: previous->next = this; } - virtual ~UiQualifiedId() {} - UiQualifiedId *finish() { UiQualifiedId *head = next; @@ -2459,8 +2318,6 @@ public: previous->next = this; } - virtual ~UiParameterList() {} - virtual void accept0(Visitor *) {} inline UiParameterList *finish () -- cgit v0.12 From 4fcf055f66cc23c9e60a7add489e394420e71914 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 11:13:18 +1000 Subject: Register QtQuick 1.0 module. Qt 4.7 is still supported, but deprecated. Reviewed-by: Martin Jones Task-number: QTBUG-13799 --- .../graphicsitems/qdeclarativeitemsmodule.cpp | 98 +++++++++++++++++----- src/declarative/qml/qdeclarativeengine.cpp | 12 ++- src/declarative/qml/qdeclarativevaluetype.cpp | 12 ++- src/declarative/util/qdeclarativeutilmodule.cpp | 54 +++++++++++- tools/qml/qmlruntime.cpp | 1 + 5 files changed, 146 insertions(+), 31 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp index 783eff1..52703c2 100644 --- a/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp @@ -97,7 +97,84 @@ void QDeclarativeItemModule::defineModule() { QDeclarativePrivate::RegisterAutoParent autoparent = { 0, &qgraphicsobject_autoParent }; QDeclarativePrivate::qmlregister(QDeclarativePrivate::AutoParentRegistration, &autoparent); +#ifdef QT_NO_MOVIE + qmlRegisterTypeNotAvailable("QtQuick",1,0,"AnimatedImage", + qApp->translate("QDeclarativeAnimatedImage","Qt was built without support for QMovie")); +#else + qmlRegisterType("QtQuick",1,0,"AnimatedImage"); +#endif + qmlRegisterType("QtQuick",1,0,"BorderImage"); + qmlRegisterType("QtQuick",1,0,"Column"); + qmlRegisterType("QtQuick",1,0,"Drag"); + qmlRegisterType("QtQuick",1,0,"Flickable"); + qmlRegisterType("QtQuick",1,0,"Flipable"); + qmlRegisterType("QtQuick",1,0,"Flow"); + qmlRegisterType("QtQuick",1,0,"FocusPanel"); + qmlRegisterType("QtQuick",1,0,"FocusScope"); + qmlRegisterType("QtQuick",1,0,"Gradient"); + qmlRegisterType("QtQuick",1,0,"GradientStop"); + qmlRegisterType("QtQuick",1,0,"Grid"); + qmlRegisterType("QtQuick",1,0,"GridView"); + qmlRegisterType("QtQuick",1,0,"Image"); + qmlRegisterType("QtQuick",1,0,"Item"); + qmlRegisterType("QtQuick",1,0,"LayoutItem"); + qmlRegisterType("QtQuick",1,0,"ListView"); + qmlRegisterType("QtQuick",1,0,"Loader"); + qmlRegisterType("QtQuick",1,0,"MouseArea"); + qmlRegisterType("QtQuick",1,0,"Path"); + qmlRegisterType("QtQuick",1,0,"PathAttribute"); + qmlRegisterType("QtQuick",1,0,"PathCubic"); + qmlRegisterType("QtQuick",1,0,"PathLine"); + qmlRegisterType("QtQuick",1,0,"PathPercent"); + qmlRegisterType("QtQuick",1,0,"PathQuad"); + qmlRegisterType("QtQuick",1,0,"PathView"); +#ifndef QT_NO_VALIDATOR + qmlRegisterType("QtQuick",1,0,"IntValidator"); + qmlRegisterType("QtQuick",1,0,"DoubleValidator"); + qmlRegisterType("QtQuick",1,0,"RegExpValidator"); +#endif + qmlRegisterType("QtQuick",1,0,"Rectangle"); + qmlRegisterType("QtQuick",1,0,"Repeater"); + qmlRegisterType("QtQuick",1,0,"Rotation"); + qmlRegisterType("QtQuick",1,0,"Row"); + qmlRegisterType("QtQuick",1,0,"Translate"); + qmlRegisterType("QtQuick",1,0,"Scale"); + qmlRegisterType("QtQuick",1,0,"Text"); + qmlRegisterType("QtQuick",1,0,"TextEdit"); +#ifndef QT_NO_LINEEDIT + qmlRegisterType("QtQuick",1,0,"TextInput"); +#endif + qmlRegisterType("QtQuick",1,0,"ViewSection"); + qmlRegisterType("QtQuick",1,0,"VisualDataModel"); + qmlRegisterType("QtQuick",1,0,"VisualItemModel"); + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType("QtQuick",1,0,"QGraphicsWidget"); + qmlRegisterExtendedType("QtQuick",1,0,"QGraphicsWidget"); + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType(); +#ifndef QT_NO_VALIDATOR + qmlRegisterType(); +#endif + qmlRegisterType(); +#ifndef QT_NO_ACTION + qmlRegisterType(); +#endif + qmlRegisterType(); + qmlRegisterType(); +#ifndef QT_NO_GRAPHICSEFFECT + qmlRegisterType(); +#endif + + qmlRegisterUncreatableType("QtQuick",1,0,"KeyNavigation",QDeclarativeKeyNavigationAttached::tr("KeyNavigation is only available via attached properties")); + qmlRegisterUncreatableType("QtQuick",1,0,"Keys",QDeclarativeKeysAttached::tr("Keys is only available via attached properties")); + +#ifndef QT_NO_IMPORT_QT47_QML #ifdef QT_NO_MOVIE qmlRegisterTypeNotAvailable("Qt",4,7,"AnimatedImage", qApp->translate("QDeclarativeAnimatedImage","Qt was built without support for QMovie")); @@ -149,29 +226,10 @@ void QDeclarativeItemModule::defineModule() qmlRegisterType("Qt",4,7,"VisualDataModel"); qmlRegisterType("Qt",4,7,"VisualItemModel"); - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterType(); qmlRegisterType("Qt",4,7,"QGraphicsWidget"); qmlRegisterExtendedType("Qt",4,7,"QGraphicsWidget"); - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterType(); -#ifndef QT_NO_VALIDATOR - qmlRegisterType(); -#endif - qmlRegisterType(); -#ifndef QT_NO_ACTION - qmlRegisterType(); -#endif - qmlRegisterType(); - qmlRegisterType(); -#ifndef QT_NO_GRAPHICSEFFECT - qmlRegisterType(); -#endif qmlRegisterUncreatableType("Qt",4,7,"KeyNavigation",QDeclarativeKeyNavigationAttached::tr("KeyNavigation is only available via attached properties")); qmlRegisterUncreatableType("Qt",4,7,"Keys",QDeclarativeKeysAttached::tr("Keys is only available via attached properties")); +#endif } diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 26b3629..724553f 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -141,7 +141,7 @@ QT_BEGIN_NAMESPACE \qml // MyRect.qml - import Qt 4.7 + import QtQuick 1.0 Item { width: 200; height: 200 @@ -177,9 +177,15 @@ static bool qt_QmlQtModule_registered = false; void QDeclarativeEnginePrivate::defineModule() { + qmlRegisterType("QtQuick",1,0,"Component"); + qmlRegisterType("QtQuick",1,0,"QtObject"); + qmlRegisterType("QtQuick",1,0,"WorkerScript"); + +#ifndef QT_NO_IMPORT_QT47_QML qmlRegisterType("Qt",4,7,"Component"); qmlRegisterType("Qt",4,7,"QtObject"); qmlRegisterType("Qt",4,7,"WorkerScript"); +#endif qmlRegisterType(); } @@ -198,7 +204,7 @@ with enums and functions. To use it, call the members of the global \c Qt objec For example: \qml -import Qt 4.7 +import QtQuick 1.0 Text { color: Qt.rgba(255, 0, 0, 1) @@ -510,7 +516,7 @@ QDeclarativeWorkerScriptEngine *QDeclarativeEnginePrivate::getWorkerScriptEngine \code QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nText { text: \"Hello world!\" }", QUrl()); + component.setData("import QtQuick 1.0\nText { text: \"Hello world!\" }", QUrl()); QDeclarativeItem *item = qobject_cast(component.create()); //add item to view, etc diff --git a/src/declarative/qml/qdeclarativevaluetype.cpp b/src/declarative/qml/qdeclarativevaluetype.cpp index fda62ee..b9e9cec 100644 --- a/src/declarative/qml/qdeclarativevaluetype.cpp +++ b/src/declarative/qml/qdeclarativevaluetype.cpp @@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE Q_GUI_EXPORT int qt_defaultDpi(); template -int qmlRegisterValueTypeEnums(const char *qmlName) +int qmlRegisterValueTypeEnums(const char *uri, int versionMajor, int versionMinor, const char *qmlName) { QByteArray name(T::staticMetaObject.className()); @@ -63,7 +63,7 @@ int qmlRegisterValueTypeEnums(const char *qmlName) QString(), - "Qt", 4, 7, qmlName, &T::staticMetaObject, + uri, versionMajor, versionMinor, qmlName, &T::staticMetaObject, 0, 0, @@ -99,8 +99,12 @@ bool QDeclarativeValueTypeFactory::isValueType(int idx) void QDeclarativeValueTypeFactory::registerValueTypes() { - qmlRegisterValueTypeEnums("Easing"); - qmlRegisterValueTypeEnums("Font"); + qmlRegisterValueTypeEnums("QtQuick",1,0,"Easing"); + qmlRegisterValueTypeEnums("QtQuick",1,0,"Font"); +#ifndef QT_NO_IMPORT_QT47_QML + qmlRegisterValueTypeEnums("Qt",4,7,"Easing"); + qmlRegisterValueTypeEnums("Qt",4,7,"Font"); +#endif } QDeclarativeValueType *QDeclarativeValueTypeFactory::valueType(int t) diff --git a/src/declarative/util/qdeclarativeutilmodule.cpp b/src/declarative/util/qdeclarativeutilmodule.cpp index c5bfebd..0544f22 100644 --- a/src/declarative/util/qdeclarativeutilmodule.cpp +++ b/src/declarative/util/qdeclarativeutilmodule.cpp @@ -75,6 +75,55 @@ void QDeclarativeUtilModule::defineModule() { + qmlRegisterType("QtQuick",1,0,"AnchorAnimation"); + qmlRegisterType("QtQuick",1,0,"AnchorChanges"); + qmlRegisterType("QtQuick",1,0,"Behavior"); + qmlRegisterType("QtQuick",1,0,"Binding"); + qmlRegisterType("QtQuick",1,0,"ColorAnimation"); + qmlRegisterType("QtQuick",1,0,"Connections"); + qmlRegisterType("QtQuick",1,0,"SmoothedAnimation"); + qmlRegisterType("QtQuick",1,0,"FontLoader"); + qmlRegisterType("QtQuick",1,0,"ListElement"); + qmlRegisterType("QtQuick",1,0,"NumberAnimation"); + qmlRegisterType("QtQuick",1,0,"Package"); + qmlRegisterType("QtQuick",1,0,"ParallelAnimation"); + qmlRegisterType("QtQuick",1,0,"ParentAnimation"); + qmlRegisterType("QtQuick",1,0,"ParentChange"); + qmlRegisterType("QtQuick",1,0,"PauseAnimation"); + qmlRegisterType("QtQuick",1,0,"PropertyAction"); + qmlRegisterType("QtQuick",1,0,"PropertyAnimation"); + qmlRegisterType("QtQuick",1,0,"RotationAnimation"); + qmlRegisterType("QtQuick",1,0,"ScriptAction"); + qmlRegisterType("QtQuick",1,0,"SequentialAnimation"); + qmlRegisterType("QtQuick",1,0,"SpringAnimation"); + qmlRegisterType("QtQuick",1,0,"StateChangeScript"); + qmlRegisterType("QtQuick",1,0,"StateGroup"); + qmlRegisterType("QtQuick",1,0,"State"); + qmlRegisterType("QtQuick",1,0,"SystemPalette"); + qmlRegisterType("QtQuick",1,0,"Timer"); + qmlRegisterType("QtQuick",1,0,"Transition"); + qmlRegisterType("QtQuick",1,0,"Vector3dAnimation"); +#ifdef QT_NO_XMLPATTERNS + qmlRegisterTypeNotAvailable("QtQuick",1,0,"XmlListModel", + qApp->translate("QDeclarativeXmlListModel","Qt was built without support for xmlpatterns")); + qmlRegisterTypeNotAvailable("QtQuick",1,0,"XmlRole", + qApp->translate("QDeclarativeXmlListModel","Qt was built without support for xmlpatterns")); +#else + qmlRegisterType("QtQuick",1,0,"XmlListModel"); + qmlRegisterType("QtQuick",1,0,"XmlRole"); +#endif + + qmlRegisterType(); + qmlRegisterType(); + qmlRegisterType(); + + qmlRegisterUncreatableType("QtQuick",1,0,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class")); + + qmlRegisterCustomType("QtQuick",1,0,"ListModel", new QDeclarativeListModelParser); + qmlRegisterCustomType("QtQuick",1,0,"PropertyChanges", new QDeclarativePropertyChangesParser); + qmlRegisterCustomType("QtQuick",1,0,"Connections", new QDeclarativeConnectionsParser); + +#ifndef QT_NO_IMPORT_QT47_QML qmlRegisterType("Qt",4,7,"AnchorAnimation"); qmlRegisterType("Qt",4,7,"AnchorChanges"); qmlRegisterType("Qt",4,7,"Behavior"); @@ -113,13 +162,10 @@ void QDeclarativeUtilModule::defineModule() qmlRegisterType("Qt",4,7,"XmlRole"); #endif - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterType(); - qmlRegisterUncreatableType("Qt",4,7,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class")); qmlRegisterCustomType("Qt", 4,7, "ListModel", new QDeclarativeListModelParser); qmlRegisterCustomType("Qt", 4, 7, "PropertyChanges", new QDeclarativePropertyChangesParser); qmlRegisterCustomType("Qt", 4, 7, "Connections", new QDeclarativeConnectionsParser); +#endif } diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index c59621a..5e169d8 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -1532,6 +1532,7 @@ void QDeclarativeViewer::registerTypes() if (!registered) { // registering only for exposing the DeviceOrientation::Orientation enum qmlRegisterUncreatableType("Qt",4,7,"Orientation",""); + qmlRegisterUncreatableType("QtQuick",1,0,"Orientation",""); registered = true; } } -- cgit v0.12 From 190ff44b6491a63a857c583d5d8bfbf7b3d0eb68 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 29 Sep 2010 11:24:39 +1000 Subject: Correct property type of PathAttribute::value in the docs. --- src/declarative/graphicsitems/qdeclarativepath.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index 717da1e..d526688 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -547,7 +547,7 @@ void QDeclarativePathAttribute::setName(const QString &name) } /*! - \qmlproperty string PathAttribute::value + \qmlproperty real PathAttribute::value This property holds the value for the attribute. The value specified can be used to influence the visual appearance -- cgit v0.12 From 49452ad6b22e080b1dfdfde38c21c48bb910a1ae Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 12:12:22 +1000 Subject: Replace all occurances of "Qt 4.7" with "QtQuick 1.0" Task-number: QTBUG-13799 Reviewed-by: Martin Jones --- demos/declarative/calculator/Core/Button.qml | 2 +- demos/declarative/calculator/Core/Display.qml | 2 +- demos/declarative/calculator/calculator.qml | 2 +- demos/declarative/flickr/common/Progress.qml | 2 +- demos/declarative/flickr/common/RssModel.qml | 2 +- demos/declarative/flickr/common/ScrollBar.qml | 2 +- demos/declarative/flickr/common/Slider.qml | 2 +- demos/declarative/flickr/flickr-90.qml | 2 +- demos/declarative/flickr/flickr.qml | 2 +- demos/declarative/flickr/mobile/Button.qml | 2 +- demos/declarative/flickr/mobile/GridDelegate.qml | 2 +- demos/declarative/flickr/mobile/ImageDetails.qml | 2 +- demos/declarative/flickr/mobile/ListDelegate.qml | 2 +- demos/declarative/flickr/mobile/TitleBar.qml | 2 +- demos/declarative/flickr/mobile/ToolBar.qml | 2 +- .../minehunt/MinehuntCore/Explosion.qml | 2 +- demos/declarative/minehunt/MinehuntCore/Tile.qml | 2 +- demos/declarative/minehunt/minehunt.qml | 2 +- .../photoviewer/PhotoViewerCore/AlbumDelegate.qml | 2 +- .../photoviewer/PhotoViewerCore/BusyIndicator.qml | 2 +- .../photoviewer/PhotoViewerCore/Button.qml | 2 +- .../photoviewer/PhotoViewerCore/EditableButton.qml | 2 +- .../photoviewer/PhotoViewerCore/PhotoDelegate.qml | 2 +- .../photoviewer/PhotoViewerCore/ProgressBar.qml | 2 +- .../photoviewer/PhotoViewerCore/RssModel.qml | 2 +- .../photoviewer/PhotoViewerCore/Tag.qml | 2 +- demos/declarative/photoviewer/photoviewer.qml | 2 +- .../declarative/rssnews/content/BusyIndicator.qml | 2 +- .../rssnews/content/CategoryDelegate.qml | 2 +- demos/declarative/rssnews/content/NewsDelegate.qml | 2 +- demos/declarative/rssnews/content/RssFeeds.qml | 2 +- demos/declarative/rssnews/content/ScrollBar.qml | 2 +- demos/declarative/rssnews/rssnews.qml | 2 +- .../samegame/SamegameCore/BoomBlock.qml | 2 +- demos/declarative/samegame/SamegameCore/Button.qml | 2 +- demos/declarative/samegame/SamegameCore/Dialog.qml | 2 +- demos/declarative/samegame/samegame.qml | 2 +- demos/declarative/snake/content/Button.qml | 2 +- demos/declarative/snake/content/Cookie.qml | 2 +- demos/declarative/snake/content/HighScoreModel.qml | 2 +- demos/declarative/snake/content/Link.qml | 2 +- demos/declarative/snake/content/Skull.qml | 2 +- demos/declarative/snake/snake.qml | 2 +- demos/declarative/twitter/TwitterCore/Button.qml | 2 +- .../twitter/TwitterCore/FatDelegate.qml | 2 +- demos/declarative/twitter/TwitterCore/Input.qml | 2 +- demos/declarative/twitter/TwitterCore/Loading.qml | 2 +- .../twitter/TwitterCore/MultiTitleBar.qml | 2 +- demos/declarative/twitter/TwitterCore/RssModel.qml | 2 +- .../declarative/twitter/TwitterCore/SearchView.qml | 2 +- demos/declarative/twitter/TwitterCore/TitleBar.qml | 2 +- demos/declarative/twitter/TwitterCore/ToolBar.qml | 2 +- .../declarative/twitter/TwitterCore/UserModel.qml | 2 +- demos/declarative/twitter/twitter.qml | 2 +- demos/declarative/webbrowser/content/Button.qml | 2 +- .../webbrowser/content/FlickableWebView.qml | 2 +- demos/declarative/webbrowser/content/Header.qml | 2 +- demos/declarative/webbrowser/content/ScrollBar.qml | 2 +- demos/declarative/webbrowser/content/UrlInput.qml | 2 +- demos/declarative/webbrowser/webbrowser.qml | 2 +- demos/qtdemo/qmlShell.qml | 2 +- doc/src/declarative/modules.qdoc | 8 +- doc/src/declarative/qdeclarativedebugging.qdoc | 2 +- doc/src/declarative/qdeclarativedocument.qdoc | 2 +- doc/src/declarative/qdeclarativei18n.qdoc | 2 +- doc/src/declarative/qdeclarativeintro.qdoc | 2 +- doc/src/declarative/qmlruntime.qdoc | 2 +- doc/src/declarative/qmlviewer.qdoc | 8 +- doc/src/declarative/qtbinding.qdoc | 2 +- doc/src/declarative/scope.qdoc | 10 +- doc/src/getting-started/gettingstartedqml.qdoc | 4 +- .../snippets/declarative/SelfDestroyingRect.qml | 2 +- doc/src/snippets/declarative/Sprite.qml | 2 +- doc/src/snippets/declarative/anchoranimation.qml | 2 +- doc/src/snippets/declarative/anchorchanges.qml | 2 +- doc/src/snippets/declarative/animatedimage.qml | 2 +- .../snippets/declarative/animation-behavioral.qml | 2 +- doc/src/snippets/declarative/animation-easing.qml | 2 +- .../snippets/declarative/animation-elements.qml | 2 +- doc/src/snippets/declarative/animation-groups.qml | 2 +- .../declarative/animation-propertyvaluesource.qml | 2 +- .../declarative/animation-signalhandler.qml | 2 +- .../snippets/declarative/animation-standalone.qml | 2 +- .../snippets/declarative/animation-transitions.qml | 2 +- doc/src/snippets/declarative/behavior.qml | 2 +- .../declarative/borderimage/borderimage-scaled.qml | 2 +- .../declarative/borderimage/borderimage-tiled.qml | 2 +- .../declarative/borderimage/normal-image.qml | 2 +- .../codingconventions/dotproperties.qml | 2 +- .../codingconventions/javascript-imports.qml | 2 +- .../declarative/codingconventions/javascript.qml | 2 +- .../declarative/codingconventions/lists.qml | 2 +- .../declarative/codingconventions/photo.qml | 2 +- doc/src/snippets/declarative/coloranimation.qml | 2 +- doc/src/snippets/declarative/column/column.qml | 2 +- .../column/vertical-positioner-transition.qml | 2 +- .../declarative/column/vertical-positioner.qml | 2 +- doc/src/snippets/declarative/comments.qml | 2 +- doc/src/snippets/declarative/component.qml | 2 +- .../declarative/createComponent-simple.qml | 2 +- doc/src/snippets/declarative/createComponent.qml | 2 +- doc/src/snippets/declarative/createQmlObject.qml | 4 +- .../declarative/dynamicObjects-destroy.qml | 2 +- doc/src/snippets/declarative/flickable.qml | 2 +- .../snippets/declarative/flickableScrollbar.qml | 2 +- doc/src/snippets/declarative/flipable/flipable.qml | 2 +- doc/src/snippets/declarative/flow-diagram.qml | 2 +- doc/src/snippets/declarative/flow.qml | 2 +- doc/src/snippets/declarative/focusscopes.qml | 2 +- doc/src/snippets/declarative/folderlistmodel.qml | 2 +- doc/src/snippets/declarative/gradient.qml | 2 +- doc/src/snippets/declarative/grid/grid-items.qml | 2 +- .../snippets/declarative/grid/grid-no-spacing.qml | 2 +- doc/src/snippets/declarative/grid/grid-spacing.qml | 2 +- doc/src/snippets/declarative/grid/grid.qml | 2 +- .../snippets/declarative/gridview/ContactModel.qml | 2 +- doc/src/snippets/declarative/gridview/gridview.qml | 2 +- doc/src/snippets/declarative/image.qml | 2 +- doc/src/snippets/declarative/listmodel-modify.qml | 2 +- doc/src/snippets/declarative/listmodel-nested.qml | 2 +- doc/src/snippets/declarative/listmodel-simple.qml | 2 +- doc/src/snippets/declarative/listmodel.qml | 2 +- .../snippets/declarative/listview/ContactModel.qml | 2 +- .../declarative/listview/listview-snippet.qml | 2 +- doc/src/snippets/declarative/listview/listview.qml | 2 +- doc/src/snippets/declarative/loader/KeyReader.qml | 2 +- doc/src/snippets/declarative/loader/MyItem.qml | 2 +- .../snippets/declarative/loader/connections.qml | 2 +- doc/src/snippets/declarative/loader/focus.qml | 2 +- doc/src/snippets/declarative/loader/simple.qml | 2 +- .../declarative/mousearea/mousearea-snippet.qml | 2 +- .../snippets/declarative/mousearea/mousearea.qml | 2 +- .../declarative/mousearea/mouseareadragfilter.qml | 2 +- doc/src/snippets/declarative/numberanimation.qml | 2 +- doc/src/snippets/declarative/parallelanimation.qml | 2 +- doc/src/snippets/declarative/parentanimation.qml | 2 +- doc/src/snippets/declarative/parentchange.qml | 2 +- .../snippets/declarative/pathview/ContactModel.qml | 2 +- .../declarative/pathview/pathattributes.qml | 2 +- doc/src/snippets/declarative/pathview/pathview.qml | 2 +- doc/src/snippets/declarative/propertyaction.qml | 2 +- doc/src/snippets/declarative/propertyanimation.qml | 2 +- doc/src/snippets/declarative/propertychanges.qml | 2 +- .../qml-data-models/dynamic-listmodel.qml | 2 +- .../declarative/qml-data-models/listelements.qml | 2 +- .../qml-data-models/listmodel-listview.qml | 2 +- .../declarative/qml-documents/inline-component.qml | 2 +- .../qml-documents/inline-text-component.qml | 2 +- .../declarative/qml-documents/non-trivial.qml | 2 +- .../declarative/qml-documents/qmldocuments.qml | 2 +- .../snippets/declarative/qml-intro/anchors1.qml | 2 +- .../snippets/declarative/qml-intro/anchors2.qml | 2 +- .../snippets/declarative/qml-intro/anchors3.qml | 2 +- .../declarative/qml-intro/hello-world1.qml | 2 +- .../declarative/qml-intro/hello-world2.qml | 2 +- .../declarative/qml-intro/hello-world3.qml | 2 +- .../declarative/qml-intro/hello-world4.qml | 2 +- .../declarative/qml-intro/hello-world5.qml | 2 +- .../declarative/qml-intro/number-animation1.qml | 2 +- .../declarative/qml-intro/number-animation2.qml | 2 +- .../snippets/declarative/qml-intro/rectangle.qml | 2 +- .../qml-intro/sequential-animation1.qml | 2 +- .../qml-intro/sequential-animation2.qml | 2 +- .../qml-intro/sequential-animation3.qml | 4 +- doc/src/snippets/declarative/qml-intro/states1.qml | 2 +- .../declarative/qml-intro/transformations1.qml | 2 +- .../qtbinding/contextproperties/main.qml | 2 +- .../declarative/qtbinding/custompalette/main.qml | 2 +- .../declarative/qtbinding/resources/main.qml | 2 +- .../declarative/qtbinding/stopwatch/main.qml | 2 +- doc/src/snippets/declarative/qtobject.qml | 2 +- .../declarative/rectangle/rect-border-width.qml | 2 +- .../declarative/rectangle/rectangle-colors.qml | 2 +- .../declarative/rectangle/rectangle-gradient.qml | 2 +- .../declarative/rectangle/rectangle-smooth.qml | 2 +- .../snippets/declarative/rectangle/rectangle.qml | 2 +- .../declarative/repeaters/repeater-grid-index.qml | 2 +- .../snippets/declarative/repeaters/repeater.qml | 2 +- doc/src/snippets/declarative/rotation.qml | 2 +- doc/src/snippets/declarative/rotationanimation.qml | 2 +- doc/src/snippets/declarative/row.qml | 2 +- doc/src/snippets/declarative/row/row.qml | 2 +- .../snippets/declarative/sequentialanimation.qml | 2 +- doc/src/snippets/declarative/smoothedanimation.qml | 2 +- doc/src/snippets/declarative/springanimation.qml | 2 +- doc/src/snippets/declarative/state-when.qml | 2 +- doc/src/snippets/declarative/state.qml | 2 +- doc/src/snippets/declarative/states.qml | 2 +- doc/src/snippets/declarative/systempalette.qml | 2 +- .../snippets/declarative/text/onLinkActivated.qml | 2 +- doc/src/snippets/declarative/texteditor.qml | 2 +- .../snippets/declarative/transition-from-to.qml | 2 +- .../snippets/declarative/transition-reversible.qml | 2 +- doc/src/snippets/declarative/transition.qml | 2 +- doc/src/snippets/declarative/visualdatamodel.qml | 2 +- .../declarative/visualdatamodel_rootindex/view.qml | 2 +- doc/src/snippets/declarative/workerscript.qml | 2 +- doc/src/snippets/declarative/xmlrole.qml | 2 +- .../animation/basics/color-animation.qml | 2 +- .../animation/basics/property-animation.qml | 2 +- .../declarative/animation/behaviors/SideRect.qml | 2 +- .../animation/behaviors/behavior-example.qml | 2 +- .../animation/easing/content/QuitButton.qml | 4 +- examples/declarative/animation/easing/easing.qml | 2 +- examples/declarative/animation/states/states.qml | 2 +- .../declarative/animation/states/transitions.qml | 2 +- .../imageprovider/imageprovider-example.qml | 2 +- .../networkaccessmanagerfactory/view.qml | 2 +- .../plugins/com/nokia/TimeExample/Clock.qml | 2 +- .../qgraphicslayouts/layoutitem/layoutitem.qml | 2 +- .../qgraphicsgridlayout/qgraphicsgridlayout.qml | 2 +- .../qgraphicslinearlayout.qml | 2 +- .../cppextensions/qwidgets/qwidgets.qml | 2 +- .../referenceexamples/methods/example.qml | 2 +- examples/declarative/i18n/i18n.qml | 2 +- .../imageelements/borderimage/borderimage.qml | 2 +- .../borderimage/content/MyBorderImage.qml | 2 +- .../borderimage/content/ShadowRectangle.qml | 2 +- .../imageelements/borderimage/shadows.qml | 2 +- .../declarative/imageelements/image/ImageCell.qml | 2 +- examples/declarative/imageelements/image/image.qml | 2 +- .../keyinteraction/focus/Core/ContextMenu.qml | 2 +- .../keyinteraction/focus/Core/GridMenu.qml | 2 +- .../keyinteraction/focus/Core/ListMenu.qml | 2 +- .../keyinteraction/focus/Core/ListViewDelegate.qml | 2 +- .../declarative/keyinteraction/focus/focus.qml | 2 +- .../modelviews/abstractitemmodel/view.qml | 2 +- .../modelviews/gridview/gridview-example.qml | 2 +- .../modelviews/listview/content/PetsModel.qml | 2 +- .../listview/content/PressAndHoldButton.qml | 2 +- .../modelviews/listview/content/RecipesModel.qml | 2 +- .../modelviews/listview/content/TextButton.qml | 2 +- .../modelviews/listview/dynamiclist.qml | 2 +- .../modelviews/listview/expandingdelegates.qml | 2 +- .../declarative/modelviews/listview/highlight.qml | 2 +- .../modelviews/listview/highlightranges.qml | 2 +- .../declarative/modelviews/listview/sections.qml | 2 +- .../modelviews/objectlistmodel/view.qml | 2 +- .../declarative/modelviews/package/Delegate.qml | 2 +- examples/declarative/modelviews/package/view.qml | 2 +- .../declarative/modelviews/parallax/parallax.qml | 2 +- .../modelviews/parallax/qml/ParallaxView.qml | 2 +- .../declarative/modelviews/parallax/qml/Smiley.qml | 2 +- .../modelviews/pathview/pathview-example.qml | 2 +- .../modelviews/stringlistmodel/view.qml | 2 +- .../modelviews/visualitemmodel/visualitemmodel.qml | 2 +- examples/declarative/modelviews/webview/alerts.qml | 2 +- .../declarative/modelviews/webview/autosize.qml | 2 +- .../modelviews/webview/content/Mapping/Map.qml | 2 +- .../declarative/modelviews/webview/googlemaps.qml | 2 +- .../declarative/modelviews/webview/inlinehtml.qml | 2 +- .../declarative/modelviews/webview/newwindows.qml | 2 +- examples/declarative/positioners/Button.qml | 2 +- examples/declarative/positioners/positioners.qml | 2 +- .../declarative/screenorientation/Core/Bubble.qml | 4 +- .../declarative/screenorientation/Core/Button.qml | 2 +- .../screenorientation/screenorientation.qml | 2 +- examples/declarative/sqllocalstorage/hello.qml | 2 +- examples/declarative/text/fonts/availableFonts.qml | 2 +- examples/declarative/text/fonts/banner.qml | 2 +- examples/declarative/text/fonts/fonts.qml | 2 +- examples/declarative/text/fonts/hello.qml | 2 +- .../text/textselection/textselection.qml | 2 +- .../threading/threadedlistmodel/timedisplay.qml | 2 +- .../threading/workerscript/workerscript.qml | 2 +- .../gestures/experimental-gestures.qml | 2 +- .../mousearea/mousearea-example.qml | 2 +- examples/declarative/toys/clocks/clocks.qml | 2 +- examples/declarative/toys/clocks/content/Clock.qml | 2 +- .../declarative/toys/clocks/content/QuitButton.qml | 4 +- examples/declarative/toys/corkboards/Day.qml | 2 +- .../declarative/toys/corkboards/corkboards.qml | 2 +- .../declarative/toys/dynamicscene/dynamicscene.qml | 4 +- .../declarative/toys/dynamicscene/qml/Button.qml | 2 +- .../toys/dynamicscene/qml/GenericSceneItem.qml | 2 +- .../toys/dynamicscene/qml/PaletteItem.qml | 2 +- .../toys/dynamicscene/qml/PerspectiveItem.qml | 2 +- examples/declarative/toys/dynamicscene/qml/Sun.qml | 2 +- .../toys/tic-tac-toe/content/Button.qml | 2 +- .../toys/tic-tac-toe/content/TicTac.qml | 2 +- .../declarative/toys/tic-tac-toe/tic-tac-toe.qml | 2 +- examples/declarative/toys/tvtennis/tvtennis.qml | 2 +- .../tutorials/extending/chapter1-basics/app.qml | 2 +- .../tutorials/extending/chapter2-methods/app.qml | 2 +- .../tutorials/extending/chapter3-bindings/app.qml | 2 +- .../extending/chapter4-customPropertyTypes/app.qml | 2 +- .../extending/chapter5-listproperties/app.qml | 2 +- .../tutorials/extending/chapter6-plugins/app.qml | 2 +- examples/declarative/tutorials/helloworld/Cell.qml | 2 +- .../declarative/tutorials/helloworld/tutorial1.qml | 2 +- .../declarative/tutorials/helloworld/tutorial2.qml | 2 +- .../declarative/tutorials/helloworld/tutorial3.qml | 2 +- .../tutorials/samegame/samegame1/Block.qml | 2 +- .../tutorials/samegame/samegame1/Button.qml | 2 +- .../tutorials/samegame/samegame1/samegame.qml | 2 +- .../tutorials/samegame/samegame2/Block.qml | 2 +- .../tutorials/samegame/samegame2/Button.qml | 2 +- .../tutorials/samegame/samegame2/samegame.qml | 2 +- .../tutorials/samegame/samegame3/Block.qml | 2 +- .../tutorials/samegame/samegame3/Button.qml | 2 +- .../tutorials/samegame/samegame3/Dialog.qml | 2 +- .../tutorials/samegame/samegame3/samegame.qml | 2 +- .../samegame/samegame4/content/BoomBlock.qml | 2 +- .../samegame/samegame4/content/Button.qml | 2 +- .../samegame/samegame4/content/Dialog.qml | 2 +- .../tutorials/samegame/samegame4/samegame.qml | 2 +- .../ui-components/dialcontrol/content/Dial.qml | 2 +- .../dialcontrol/content/QuitButton.qml | 4 +- .../ui-components/dialcontrol/dialcontrol.qml | 2 +- .../ui-components/flipable/content/Card.qml | 2 +- .../ui-components/flipable/flipable.qml | 2 +- .../progressbar/content/ProgressBar.qml | 2 +- .../declarative/ui-components/progressbar/main.qml | 2 +- .../ui-components/scrollbar/ScrollBar.qml | 2 +- .../declarative/ui-components/scrollbar/main.qml | 2 +- .../ui-components/searchbox/SearchBox.qml | 2 +- .../declarative/ui-components/searchbox/main.qml | 2 +- .../ui-components/slideswitch/content/Switch.qml | 2 +- .../ui-components/slideswitch/slideswitch.qml | 2 +- .../ui-components/spinner/content/Spinner.qml | 2 +- .../declarative/ui-components/spinner/main.qml | 2 +- .../ui-components/tabwidget/TabWidget.qml | 2 +- .../declarative/ui-components/tabwidget/main.qml | 2 +- .../xml/xmlhttprequest/xmlhttprequest-example.qml | 2 +- .../tutorials/gettingStarted/gsQml/core/button.qml | 4 +- .../gettingStarted/gsQml/core/editMenu.qml | 4 +- .../gettingStarted/gsQml/core/fileDialog.qml | 4 +- .../gettingStarted/gsQml/core/fileMenu.qml | 2 +- .../gettingStarted/gsQml/core/menuBar.qml | 2 +- .../gettingStarted/gsQml/core/textArea.qml | 4 +- .../tutorials/gettingStarted/gsQml/texteditor.qml | 2 +- src/declarative/graphicsitems/qdeclarativeitem.cpp | 2 +- .../graphicsitems/qdeclarativetextedit.cpp | 4 +- .../graphicsitems/qdeclarativetextinput.cpp | 6 +- .../graphicsitems/qdeclarativevisualitemmodel.cpp | 2 +- src/declarative/qml/qdeclarativecompiler.cpp | 2 +- src/declarative/qml/qdeclarativecomponent.cpp | 2 +- src/declarative/qml/qdeclarativecontext.cpp | 4 +- src/declarative/qml/qdeclarativedom.cpp | 2 +- src/declarative/qml/qdeclarativeexpression.cpp | 2 +- src/declarative/util/qdeclarativefontloader.cpp | 2 +- src/declarative/util/qdeclarativetimer.cpp | 2 +- src/declarative/util/qdeclarativexmllistmodel.cpp | 2 +- src/imports/particles/qdeclarativeparticles.cpp | 2 +- .../declarative/parserstress/tst_parserstress.cpp | 2 +- .../qdeclarativeanchors/data/anchors.qml | 2 +- .../data/anchorsqgraphicswidget.qml | 2 +- .../qdeclarativeanchors/data/centerin.qml | 2 +- .../qdeclarativeanchors/data/crash1.qml | 2 +- .../declarative/qdeclarativeanchors/data/fill.qml | 2 +- .../qdeclarativeanchors/data/hvCenter.qml | 2 +- .../declarative/qdeclarativeanchors/data/loop1.qml | 2 +- .../declarative/qdeclarativeanchors/data/loop2.qml | 2 +- .../qdeclarativeanchors/data/margins.qml | 2 +- .../tst_qdeclarativeanchors.cpp | 2 +- .../qdeclarativeanimatedimage/data/colors.qml | 2 +- .../qdeclarativeanimatedimage/data/stickman.qml | 2 +- .../data/stickmanerror1.qml | 2 +- .../data/stickmanpause.qml | 2 +- .../data/stickmanscaled.qml | 2 +- .../data/stickmanstopped.qml | 2 +- .../tst_qdeclarativeanimatedimage.cpp | 2 +- .../qdeclarativeanimations/data/attached.qml | 2 +- .../qdeclarativeanimations/data/badproperty1.qml | 2 +- .../qdeclarativeanimations/data/badproperty2.qml | 2 +- .../qdeclarativeanimations/data/badtype1.qml | 2 +- .../qdeclarativeanimations/data/badtype2.qml | 2 +- .../qdeclarativeanimations/data/badtype3.qml | 2 +- .../qdeclarativeanimations/data/badtype4.qml | 2 +- .../qdeclarativeanimations/data/dontAutoStart.qml | 2 +- .../qdeclarativeanimations/data/dontStart.qml | 2 +- .../qdeclarativeanimations/data/dontStart2.qml | 2 +- .../qdeclarativeanimations/data/dotproperty.qml | 2 +- .../qdeclarativeanimations/data/mixedtype1.qml | 2 +- .../qdeclarativeanimations/data/mixedtype2.qml | 2 +- .../data/nonTransitionBug.qml | 2 +- .../qdeclarativeanimations/data/properties.qml | 2 +- .../qdeclarativeanimations/data/properties2.qml | 2 +- .../qdeclarativeanimations/data/properties3.qml | 2 +- .../qdeclarativeanimations/data/properties4.qml | 2 +- .../qdeclarativeanimations/data/properties5.qml | 2 +- .../data/propertiesTransition.qml | 2 +- .../data/propertiesTransition2.qml | 2 +- .../data/propertiesTransition3.qml | 2 +- .../data/propertiesTransition4.qml | 2 +- .../data/propertiesTransition5.qml | 2 +- .../data/propertiesTransition6.qml | 2 +- .../data/propertiesTransition7.qml | 2 +- .../qdeclarativeanimations/data/rotation.qml | 2 +- .../qdeclarativeanimations/data/runningTrueBug.qml | 2 +- .../qdeclarativeanimations/data/valuesource.qml | 2 +- .../qdeclarativeanimations/data/valuesource2.qml | 2 +- .../tst_qdeclarativeanimations.cpp | 8 +- .../qdeclarativebehaviors/data/binding.qml | 2 +- .../qdeclarativebehaviors/data/color.qml | 2 +- .../qdeclarativebehaviors/data/cpptrigger.qml | 2 +- .../qdeclarativebehaviors/data/disabled.qml | 2 +- .../qdeclarativebehaviors/data/dontStart.qml | 2 +- .../qdeclarativebehaviors/data/empty.qml | 2 +- .../qdeclarativebehaviors/data/explicit.qml | 2 +- .../qdeclarativebehaviors/data/groupProperty.qml | 2 +- .../qdeclarativebehaviors/data/groupProperty2.qml | 2 +- .../data/groupedPropertyCrash.qml | 2 +- .../qdeclarativebehaviors/data/loop.qml | 2 +- .../qdeclarativebehaviors/data/nonSelecting2.qml | 2 +- .../qdeclarativebehaviors/data/parent.qml | 2 +- .../qdeclarativebehaviors/data/qtbug12295.qml | 2 +- .../data/reassignedAnimation.qml | 2 +- .../qdeclarativebehaviors/data/runningTrue.qml | 2 +- .../qdeclarativebehaviors/data/scripttrigger.qml | 2 +- .../qdeclarativebehaviors/data/simple.qml | 2 +- .../qdeclarativebehaviors/data/startup.qml | 2 +- .../qdeclarativebehaviors/data/startup2.qml | 2 +- .../qdeclarativebinding/data/test-binding.qml | 2 +- .../qdeclarativebinding/data/test-binding2.qml | 2 +- .../tst_qdeclarativeborderimage.cpp | 20 +-- .../qdeclarativecomponent/data/createObject.qml | 2 +- .../data/connection-targetchange.qml | 2 +- .../data/connection-unknownsignals-ignored.qml | 2 +- .../data/connection-unknownsignals-notarget.qml | 2 +- .../data/connection-unknownsignals-parent.qml | 2 +- .../data/connection-unknownsignals.qml | 2 +- .../qdeclarativeconnection/data/error-object.qml | 2 +- .../qdeclarativeconnection/data/error-property.qml | 2 +- .../data/error-property2.qml | 2 +- .../qdeclarativeconnection/data/error-syntax.qml | 2 +- .../data/test-connection.qml | 2 +- .../data/test-connection2.qml | 2 +- .../data/test-connection3.qml | 2 +- .../qdeclarativeconnection/data/trimming.qml | 2 +- .../tst_qdeclarativecontext.cpp | 18 +-- .../qdeclarativedebug/tst_qdeclarativedebug.cpp | 6 +- .../qdeclarativedom/data/MyComponent.qml | 2 +- .../declarative/qdeclarativedom/data/MyItem.qml | 2 +- .../qdeclarativedom/data/import/Bar.qml | 2 +- .../qdeclarativedom/data/importlib/sublib/Foo.qml | 2 +- .../auto/declarative/qdeclarativedom/data/top.qml | 2 +- .../qdeclarativedom/tst_qdeclarativedom.cpp | 162 ++++++++++----------- .../qdeclarativeecmascript/data/CustomObject.qml | 2 +- .../qdeclarativeecmascript/data/MethodsObject.qml | 2 +- .../data/NestedTypeTransientErrors.qml | 2 +- .../qdeclarativeecmascript/data/ScopeObject.qml | 2 +- .../data/SpuriousWarning.qml | 2 +- .../data/aliasPropertyAndBinding.qml | 2 +- .../data/assignBasicTypes.qml | 2 +- .../data/attachedPropertyScope.qml | 2 +- .../qdeclarativeecmascript/data/bug.1.qml | 2 +- .../data/canAssignNullToQObject.2.qml | 2 +- .../qdeclarativeecmascript/data/compiled.qml | 2 +- .../data/compositePropertyType.qml | 2 +- .../data/deferredPropertiesErrors.qml | 2 +- .../qdeclarativeecmascript/data/deleteLater.qml | 2 +- .../qdeclarativeecmascript/data/deletedEngine.qml | 2 +- .../qdeclarativeecmascript/data/deletedObject.qml | 2 +- .../qdeclarativeecmascript/data/eval.qml | 2 +- .../data/exceptionProducesWarning.qml | 2 +- .../data/exceptionProducesWarning2.qml | 2 +- .../data/extendedObjectPropertyLookup.qml | 2 +- .../data/extensionObjects.qml | 2 +- .../qdeclarativeecmascript/data/function.qml | 2 +- .../qdeclarativeecmascript/data/functionErrors.qml | 2 +- .../data/idShortcutInvalidates.1.qml | 2 +- .../data/idShortcutInvalidates.qml | 2 +- .../declarative/qdeclarativeecmascript/data/in.qml | 2 +- .../qdeclarativeecmascript/data/include.qml | 2 +- .../data/include_callback.qml | 2 +- .../qdeclarativeecmascript/data/include_pragma.qml | 2 +- .../qdeclarativeecmascript/data/include_remote.qml | 2 +- .../data/include_remote_missing.qml | 2 +- .../qdeclarativeecmascript/data/include_shared.qml | 2 +- .../data/invokableObjectArg.qml | 2 +- .../data/invokableObjectRet.qml | 2 +- .../qdeclarativeecmascript/data/jsObject.qml | 2 +- .../data/libraryScriptAssert.qml | 2 +- .../qdeclarativeecmascript/data/listProperties.qml | 2 +- .../qdeclarativeecmascript/data/listToVariant.qml | 2 +- .../qdeclarativeecmascript/data/methods.3.qml | 2 +- .../qdeclarativeecmascript/data/methods.4.qml | 2 +- .../qdeclarativeecmascript/data/methods.5.qml | 2 +- .../data/multiEngineObject.qml | 2 +- .../data/noSpuriousWarningsAtShutdown.2.qml | 2 +- .../data/noSpuriousWarningsAtShutdown.qml | 2 +- .../qdeclarativeecmascript/data/nonscriptable.qml | 2 +- .../data/nullObjectBinding.qml | 2 +- .../data/objectsCompareAsEqual.qml | 2 +- .../qdeclarativeecmascript/data/ownership.qml | 2 +- .../data/propertyAssignmentErrors.qml | 2 +- .../data/qlistqobjectMethods.qml | 2 +- .../qdeclarativeecmascript/data/qtbug_10696.qml | 2 +- .../qdeclarativeecmascript/data/qtbug_11600.qml | 2 +- .../qdeclarativeecmascript/data/qtbug_11606.qml | 2 +- .../data/qtcreatorbug_1289.qml | 2 +- .../qdeclarativeecmascript/data/scope.2.qml | 2 +- .../qdeclarativeecmascript/data/scope.3.qml | 2 +- .../qdeclarativeecmascript/data/scope.qml | 2 +- .../data/scriptConnect.1.qml | 2 +- .../data/scriptConnect.2.qml | 2 +- .../data/scriptConnect.3.qml | 2 +- .../data/scriptConnect.4.qml | 2 +- .../data/scriptConnect.5.qml | 2 +- .../data/scriptConnect.6.qml | 2 +- .../data/scriptDisconnect.1.qml | 2 +- .../data/scriptDisconnect.2.qml | 2 +- .../data/scriptDisconnect.3.qml | 2 +- .../data/scriptDisconnect.4.qml | 2 +- .../data/sharedAttachedObject.qml | 2 +- .../qdeclarativeecmascript/data/shutdownErrors.qml | 2 +- .../data/signalTriggeredBindings.qml | 2 +- .../qdeclarativeecmascript/data/strictlyEquals.qml | 2 +- .../data/transientErrors.2.qml | 2 +- .../data/transientErrors.qml | 2 +- .../data/variantsAssignedUndefined.qml | 2 +- .../qdeclarativeengine/tst_qdeclarativeengine.cpp | 8 +- .../qdeclarativeflickable/data/flickable01.qml | 2 +- .../qdeclarativeflickable/data/flickable02.qml | 2 +- .../qdeclarativeflickable/data/flickable03.qml | 2 +- .../qdeclarativeflickable/data/flickable04.qml | 2 +- .../data/flickableqgraphicswidget.qml | 2 +- .../tst_qdeclarativeflickable.cpp | 10 +- .../qdeclarativeflipable/data/crash.qml | 2 +- .../qdeclarativeflipable/data/flipable-abort.qml | 2 +- .../qdeclarativeflipable/data/test-flipable.qml | 2 +- .../qdeclarativefocusscope/data/chain.qml | 2 +- .../qdeclarativefocusscope/data/forcefocus.qml | 2 +- .../qdeclarativefocusscope/data/signalEmission.qml | 2 +- .../qdeclarativefocusscope/data/test.qml | 2 +- .../qdeclarativefocusscope/data/test2.qml | 2 +- .../qdeclarativefocusscope/data/test3.qml | 2 +- .../qdeclarativefocusscope/data/test4.qml | 2 +- .../qdeclarativefocusscope/data/test5.qml | 2 +- .../tst_qdeclarativefontloader.cpp | 16 +- .../qdeclarativegridview/data/displaygrid.qml | 2 +- .../qdeclarativegridview/data/footer.qml | 2 +- .../data/gridview-enforcerange.qml | 2 +- .../data/gridview-initCurrent.qml | 2 +- .../qdeclarativegridview/data/gridview1.qml | 2 +- .../qdeclarativegridview/data/gridview2.qml | 2 +- .../qdeclarativegridview/data/gridview3.qml | 2 +- .../qdeclarativegridview/data/manual-highlight.qml | 2 +- .../data/propertychangestest.qml | 2 +- .../qdeclarativegridview/data/setindex.qml | 2 +- .../tst_qdeclarativegridview.cpp | 4 +- .../qdeclarativeimage/data/aspectratio.qml | 2 +- .../declarative/qdeclarativeimage/data/tiling.qml | 2 +- .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 16 +- .../tst_qdeclarativeimageprovider.cpp | 8 +- .../qdeclarativeinfo/data/NestedObject.qml | 2 +- .../qdeclarativeinfo/data/nestedQmlObject.qml | 2 +- .../qdeclarativeinfo/data/qmlObject.qml | 2 +- .../qdeclarativeitem/data/childrenProperty.qml | 2 +- .../qdeclarativeitem/data/childrenRect.qml | 2 +- .../qdeclarativeitem/data/childrenRectBug.qml | 2 +- .../qdeclarativeitem/data/childrenRectBug2.qml | 2 +- .../qdeclarativeitem/data/childrenRectBug3.qml | 2 +- .../qdeclarativeitem/data/keynavigationtest.qml | 2 +- .../qdeclarativeitem/data/keyspriority.qml | 2 +- .../declarative/qdeclarativeitem/data/keystest.qml | 2 +- .../qdeclarativeitem/data/mapCoordinates.qml | 2 +- .../qdeclarativeitem/data/mouseFocus.qml | 2 +- .../qdeclarativeitem/data/propertychanges.qml | 2 +- .../qdeclarativeitem/data/resourcesProperty.qml | 2 +- .../qdeclarativeitem/tst_qdeclarativeitem.cpp | 6 +- .../qdeclarativelanguage/data/Alias.qml | 2 +- .../qdeclarativelanguage/data/Alias2.qml | 2 +- .../qdeclarativelanguage/data/Alias3.qml | 2 +- .../qdeclarativelanguage/data/Alias4.qml | 2 +- .../data/ComponentComposite.qml | 2 +- .../qdeclarativelanguage/data/CompositeType.qml | 2 +- .../qdeclarativelanguage/data/CompositeType3.qml | 2 +- .../data/DynamicPropertiesNestedType.qml | 2 +- .../qdeclarativelanguage/data/HelperAlias.qml | 2 +- .../qdeclarativelanguage/data/LocalLast.qml | 2 +- .../qdeclarativelanguage/data/NestedAlias.qml | 2 +- .../qdeclarativelanguage/data/NestedErrorsType.qml | 2 +- .../qdeclarativelanguage/data/OnCompletedType.qml | 2 +- .../data/OnDestructionType.qml | 2 +- .../qdeclarativelanguage/data/alias.1.qml | 2 +- .../qdeclarativelanguage/data/alias.3.qml | 2 +- .../qdeclarativelanguage/data/alias.5.qml | 2 +- .../qdeclarativelanguage/data/alias.6.qml | 2 +- .../qdeclarativelanguage/data/alias.7.qml | 2 +- .../qdeclarativelanguage/data/alias.8.qml | 2 +- .../qdeclarativelanguage/data/alias.9.qml | 2 +- .../data/aliasPropertiesAndSignals.qml | 2 +- .../data/assignCompositeToType.qml | 2 +- .../data/assignLiteralToVariant.qml | 2 +- .../data/assignObjectToVariant.qml | 2 +- .../data/assignToNamespace.qml | 2 +- .../data/attachedProperties.qml | 2 +- .../qdeclarativelanguage/data/component.1.qml | 2 +- .../qdeclarativelanguage/data/component.2.qml | 2 +- .../qdeclarativelanguage/data/component.3.qml | 2 +- .../qdeclarativelanguage/data/component.4.qml | 2 +- .../qdeclarativelanguage/data/component.5.qml | 2 +- .../qdeclarativelanguage/data/component.6.qml | 2 +- .../qdeclarativelanguage/data/component.7.qml | 2 +- .../qdeclarativelanguage/data/component.8.qml | 2 +- .../qdeclarativelanguage/data/component.9.qml | 2 +- .../data/componentCompositeType.qml | 2 +- .../qdeclarativelanguage/data/crash2.qml | 2 +- .../qdeclarativelanguage/data/customOnProperty.qml | 2 +- .../data/customParserIdNotAllowed.qml | 2 +- .../data/customParserTypes.qml | 2 +- .../data/declaredPropertyValues.qml | 2 +- .../qdeclarativelanguage/data/defaultGrouped.qml | 2 +- .../data/defaultPropertyListOrder.qml | 2 +- .../qdeclarativelanguage/data/destroyedSignal.qml | 2 +- .../data/dontDoubleCallClassBegin.qml | 2 +- .../qdeclarativelanguage/data/dynamicMeta.1.qml | 2 +- .../qdeclarativelanguage/data/dynamicMeta.2.qml | 2 +- .../qdeclarativelanguage/data/dynamicMeta.3.qml | 2 +- .../qdeclarativelanguage/data/dynamicMeta.4.qml | 2 +- .../qdeclarativelanguage/data/dynamicMeta.5.qml | 2 +- .../qdeclarativelanguage/data/dynamicObject.1.qml | 2 +- .../data/dynamicObjectProperties.2.qml | 4 +- .../data/dynamicObjectProperties.qml | 4 +- .../data/dynamicProperties.qml | 2 +- .../data/dynamicPropertiesNested.qml | 2 +- .../data/dynamicSignalsAndSlots.qml | 2 +- .../qdeclarativelanguage/data/enumTypes.qml | 2 +- .../data/importNamespaceConflict.qml | 2 +- .../qdeclarativelanguage/data/importNonExist.qml | 2 +- .../data/inlineQmlComponents.qml | 2 +- .../data/interfaceProperty.qml | 2 +- .../qdeclarativelanguage/data/invalidAlias.1.qml | 2 +- .../qdeclarativelanguage/data/invalidAlias.2.qml | 2 +- .../data/invalidAttachedProperty.1.qml | 2 +- .../data/invalidAttachedProperty.10.qml | 2 +- .../data/invalidAttachedProperty.11.qml | 2 +- .../data/invalidAttachedProperty.2.qml | 2 +- .../data/invalidAttachedProperty.3.qml | 2 +- .../data/invalidAttachedProperty.4.qml | 2 +- .../data/invalidAttachedProperty.5.qml | 2 +- .../data/invalidAttachedProperty.6.qml | 2 +- .../data/invalidAttachedProperty.7.qml | 2 +- .../data/invalidAttachedProperty.8.qml | 2 +- .../data/invalidAttachedProperty.9.qml | 2 +- .../data/invalidGroupedProperty.1.qml | 2 +- .../data/invalidGroupedProperty.2.qml | 2 +- .../data/invalidImportID.errors.txt | 2 +- .../qdeclarativelanguage/data/invalidImportID.qml | 4 +- .../qdeclarativelanguage/data/invalidProperty.qml | 2 +- .../lib/com/nokia/installedtest/InstalledTest.qml | 2 +- .../lib/com/nokia/installedtest/InstalledTest2.qml | 2 +- .../data/lib/com/nokia/installedtest/LocalLast.qml | 2 +- .../lib/com/nokia/installedtest/PrivateType.qml | 2 +- .../lib/com/nokia/installedtest0/InstalledTest.qml | 2 +- .../com/nokia/installedtest0/InstalledTest2.qml | 2 +- .../qdeclarativelanguage/data/listAssignment.1.qml | 2 +- .../data/listItemDeleteSelf.qml | 2 +- .../qdeclarativelanguage/data/listProperties.qml | 2 +- .../qdeclarativelanguage/data/method.1.qml | 2 +- .../qdeclarativelanguage/data/missingSignal.qml | 2 +- .../qdeclarativelanguage/data/nestedErrors.qml | 2 +- .../qdeclarativelanguage/data/noCreation.qml | 2 +- .../qdeclarativelanguage/data/onCompleted.qml | 2 +- .../qdeclarativelanguage/data/onDestruction.qml | 2 +- .../qdeclarativelanguage/data/property.1.qml | 2 +- .../qdeclarativelanguage/data/property.2.qml | 2 +- .../qdeclarativelanguage/data/property.3.qml | 2 +- .../qdeclarativelanguage/data/property.4.qml | 2 +- .../qdeclarativelanguage/data/property.5.qml | 2 +- .../qdeclarativelanguage/data/property.6.qml | 2 +- .../qdeclarativelanguage/data/property.7.qml | 2 +- .../data/qmlAttachedPropertiesObjectMethod.1.qml | 2 +- .../data/qmlAttachedPropertiesObjectMethod.2.qml | 2 +- .../qdeclarativelanguage/data/readOnly.3.qml | 2 +- .../qdeclarativelanguage/data/signal.1.qml | 2 +- .../qdeclarativelanguage/data/signal.2.qml | 2 +- .../qdeclarativelanguage/data/signal.3.qml | 2 +- .../qdeclarativelanguage/data/signal.4.qml | 2 +- .../qdeclarativelanguage/data/subdir/Test.qml | 2 +- .../data/subdir/subsubdir/SubTest.qml | 2 +- .../qdeclarativelanguage/data/variantNotify.qml | 2 +- .../qdeclarativelanguage/data/wrongType.16.qml | 2 +- .../declarative/qmllanguage/LocalInternal.qml | 2 +- .../qtest/declarative/qmllanguage/Test.qml | 2 +- .../declarative/qmllanguage/UndeclaredLocal.qml | 2 +- .../declarative/qmllanguage/subdir/SubTest.qml | 2 +- .../tst_qdeclarativelanguage.cpp | 14 +- .../qdeclarativelayoutitem/data/layoutItem.qml | 2 +- .../qdeclarativelistmodel/data/enumerate.qml | 2 +- .../qdeclarativelistmodel/data/model.qml | 2 +- .../qdeclarativelistmodel/data/multipleroles.qml | 4 +- .../tst_qdeclarativelistmodel.cpp | 34 ++--- .../qdeclarativelistreference/data/MyType.qml | 2 +- .../qdeclarativelistreference/data/engineTypes.qml | 2 +- .../data/variantToList.qml | 2 +- .../qdeclarativelistview/data/displaylist.qml | 2 +- .../qdeclarativelistview/data/footer.qml | 2 +- .../qdeclarativelistview/data/itemlist.qml | 2 +- .../data/listview-enforcerange.qml | 2 +- .../data/listview-initCurrent.qml | 2 +- .../data/listview-sections.qml | 2 +- .../qdeclarativelistview/data/listviewtest.qml | 2 +- .../qdeclarativelistview/data/manual-highlight.qml | 2 +- .../data/propertychangestest.qml | 2 +- .../data/strictlyenforcerange.qml | 2 +- .../tst_qdeclarativelistview.cpp | 4 +- .../qdeclarativeloader/data/AnchoredLoader.qml | 2 +- .../qdeclarativeloader/data/BlueRect.qml | 2 +- .../data/GraphicsWidget250x250.qml | 2 +- .../qdeclarativeloader/data/GreenRect.qml | 2 +- .../qdeclarativeloader/data/NoResize.qml | 2 +- .../data/NoResizeGraphicsWidget.qml | 2 +- .../qdeclarativeloader/data/Rect120x60.qml | 2 +- .../qdeclarativeloader/data/SetSourceComponent.qml | 2 +- .../data/SizeGraphicsWidgetToLoader.qml | 2 +- .../data/SizeLoaderToGraphicsWidget.qml | 2 +- .../qdeclarativeloader/data/SizeToItem.qml | 2 +- .../qdeclarativeloader/data/SizeToLoader.qml | 2 +- .../qdeclarativeloader/data/VmeError.qml | 2 +- .../declarative/qdeclarativeloader/data/crash.qml | 2 +- .../qdeclarativeloader/data/differentorigin.qml | 2 +- .../qdeclarativeloader/data/nonItem.qml | 2 +- .../qdeclarativeloader/data/sameorigin-load.qml | 2 +- .../qdeclarativeloader/data/sameorigin.qml | 2 +- .../qdeclarativeloader/data/vmeErrors.qml | 2 +- .../qdeclarativeloader/tst_qdeclarativeloader.cpp | 14 +- .../qdeclarativemousearea/data/clickandhold.qml | 2 +- .../qdeclarativemousearea/data/doubleclick.qml | 2 +- .../qdeclarativemousearea/data/dragging.qml | 2 +- .../qdeclarativemousearea/data/dragproperties.qml | 2 +- .../qdeclarativemousearea/data/dragreset.qml | 2 +- .../qdeclarativemousearea/data/rejectEvent.qml | 2 +- .../data/updateMousePosOnClick.qml | 2 +- .../data/updateMousePosOnResize.qml | 2 +- .../data/particlemotiontest.qml | 2 +- .../qdeclarativeparticles/data/particlestest.qml | 2 +- .../qdeclarativepathview/data/datamodel.qml | 2 +- .../qdeclarativepathview/data/displaypath.qml | 2 +- .../qdeclarativepathview/data/emptymodel.qml | 2 +- .../data/pathUpdateOnStartChanged.qml | 2 +- .../qdeclarativepathview/data/pathtest.qml | 2 +- .../qdeclarativepathview/data/pathview0.qml | 2 +- .../qdeclarativepathview/data/pathview1.qml | 2 +- .../qdeclarativepathview/data/pathview2.qml | 2 +- .../qdeclarativepathview/data/pathview3.qml | 2 +- .../qdeclarativepathview/data/pathview_package.qml | 2 +- .../qdeclarativepathview/data/propertychanges.qml | 2 +- .../tst_qdeclarativepathview.cpp | 2 +- .../data/flow-testimplicitsize.qml | 4 +- .../qdeclarativepositioners/data/flowtest.qml | 2 +- .../qdeclarativepositioners/data/grid-animated.qml | 2 +- .../qdeclarativepositioners/data/grid-spacing.qml | 2 +- .../data/grid-toptobottom.qml | 2 +- .../qdeclarativepositioners/data/gridtest.qml | 2 +- .../data/gridzerocolumns.qml | 2 +- .../data/horizontal-animated.qml | 2 +- .../data/horizontal-spacing.qml | 2 +- .../qdeclarativepositioners/data/horizontal.qml | 2 +- .../data/propertychangestest.qml | 2 +- .../qdeclarativepositioners/data/repeatertest.qml | 2 +- .../data/vertical-animated.qml | 2 +- .../data/vertical-spacing.qml | 2 +- .../qdeclarativepositioners/data/vertical.qml | 2 +- .../data/verticalqgraphicswidget.qml | 2 +- .../tst_qdeclarativepositioners.cpp | 28 ++-- .../qdeclarativeproperty/data/TestType.qml | 2 +- .../data/readSynthesizedObject.qml | 2 +- .../tst_qdeclarativepropertymap.cpp | 4 +- .../auto/declarative/qdeclarativeqt/data/atob.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/btoa.qml | 2 +- .../declarative/qdeclarativeqt/data/consoleLog.qml | 2 +- .../qdeclarativeqt/data/createComponent.qml | 2 +- .../qdeclarativeqt/data/createComponentData.qml | 2 +- .../qdeclarativeqt/data/createComponent_lib.qml | 2 +- .../qdeclarativeqt/data/createQmlObject.qml | 16 +- .../declarative/qdeclarativeqt/data/darker.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/enums.qml | 2 +- .../qdeclarativeqt/data/fontFamilies.qml | 2 +- .../declarative/qdeclarativeqt/data/formatting.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/hsla.qml | 2 +- .../declarative/qdeclarativeqt/data/isQtObject.qml | 2 +- .../declarative/qdeclarativeqt/data/lighter.qml | 2 +- tests/auto/declarative/qdeclarativeqt/data/md5.qml | 2 +- .../qdeclarativeqt/data/openUrlExternally.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/point.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/quit.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/rect.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/rgba.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/size.qml | 2 +- .../auto/declarative/qdeclarativeqt/data/tint.qml | 2 +- .../declarative/qdeclarativeqt/data/vector.qml | 2 +- .../qdeclarativerepeater/data/intmodel.qml | 2 +- .../qdeclarativerepeater/data/itemlist.qml | 2 +- .../qdeclarativerepeater/data/objlist.qml | 2 +- .../qdeclarativerepeater/data/properties.qml | 2 +- .../qdeclarativerepeater/data/repeater1.qml | 2 +- .../qdeclarativerepeater/data/repeater2.qml | 2 +- .../tst_qdeclarativerepeater.cpp | 2 +- .../data/backtrace1.qml | 2 +- .../data/smoothedanimation1.qml | 2 +- .../data/smoothedanimation2.qml | 2 +- .../data/smoothedanimation3.qml | 2 +- .../data/smoothedanimationBehavior.qml | 2 +- .../data/smoothedanimationValueSource.qml | 2 +- .../data/springanimation1.qml | 2 +- .../data/springanimation2.qml | 2 +- .../data/springanimation3.qml | 2 +- .../tst_qdeclarativesqldatabase.cpp | 2 +- .../qdeclarativestates/data/ExtendedRectangle.qml | 2 +- .../data/Implementation/MyType.qml | 2 +- .../qdeclarativestates/data/anchorChanges1.qml | 2 +- .../qdeclarativestates/data/anchorChanges2.qml | 2 +- .../qdeclarativestates/data/anchorChanges3.qml | 2 +- .../qdeclarativestates/data/anchorChanges4.qml | 2 +- .../qdeclarativestates/data/anchorChanges5.qml | 2 +- .../qdeclarativestates/data/anchorChangesCrash.qml | 2 +- .../qdeclarativestates/data/anchorRewindBug.qml | 4 +- .../qdeclarativestates/data/anchorRewindBug2.qml | 2 +- .../data/attachedPropertyChanges.qml | 2 +- .../data/autoStateAtStartupRestoreBug.qml | 2 +- .../qdeclarativestates/data/basicBinding.qml | 2 +- .../qdeclarativestates/data/basicBinding2.qml | 2 +- .../qdeclarativestates/data/basicBinding3.qml | 2 +- .../qdeclarativestates/data/basicBinding4.qml | 2 +- .../qdeclarativestates/data/basicChanges.qml | 2 +- .../qdeclarativestates/data/basicChanges2.qml | 2 +- .../qdeclarativestates/data/basicChanges3.qml | 2 +- .../qdeclarativestates/data/basicChanges4.qml | 2 +- .../qdeclarativestates/data/basicExtension.qml | 2 +- .../qdeclarativestates/data/deleting.qml | 2 +- .../qdeclarativestates/data/deletingState.qml | 2 +- .../qdeclarativestates/data/editProperties.qml | 2 +- .../qdeclarativestates/data/explicit.qml | 2 +- .../qdeclarativestates/data/extendsBug.qml | 2 +- .../qdeclarativestates/data/fakeExtension.qml | 2 +- .../qdeclarativestates/data/illegalObj.qml | 2 +- .../qdeclarativestates/data/illegalTempState.qml | 2 +- .../qdeclarativestates/data/legalTempState.qml | 2 +- .../qdeclarativestates/data/nonExistantProp.qml | 2 +- .../qdeclarativestates/data/parentChange1.qml | 2 +- .../qdeclarativestates/data/parentChange2.qml | 2 +- .../qdeclarativestates/data/parentChange3.qml | 2 +- .../qdeclarativestates/data/parentChange4.qml | 2 +- .../qdeclarativestates/data/parentChange5.qml | 2 +- .../qdeclarativestates/data/parentChange6.qml | 2 +- .../qdeclarativestates/data/propertyErrors.qml | 2 +- .../declarative/qdeclarativestates/data/reset.qml | 2 +- .../qdeclarativestates/data/restoreEntryValues.qml | 2 +- .../qdeclarativestates/data/returnToBase.qml | 2 +- .../declarative/qdeclarativestates/data/script.qml | 2 +- .../qdeclarativestates/data/signalOverride.qml | 2 +- .../qdeclarativestates/data/signalOverride2.qml | 2 +- .../data/signalOverrideCrash.qml | 2 +- .../data/signalOverrideCrash2.qml | 2 +- .../qdeclarativestates/data/unnamedWhen.qml | 2 +- .../qdeclarativestates/data/urlResolution.qml | 2 +- .../qdeclarativestates/data/whenOrdering.qml | 2 +- .../tst_qdeclarativesystempalette.cpp | 8 +- .../qdeclarativetext/data/alignments.qml | 2 +- .../qdeclarativetext/data/embeddedImagesLocal.qml | 2 +- .../data/embeddedImagesLocalError.qml | 2 +- .../qdeclarativetext/data/embeddedImagesRemote.qml | 2 +- .../data/embeddedImagesRemoteError.qml | 2 +- .../declarative/qdeclarativetext/data/rotated.qml | 2 +- .../qdeclarativetext/tst_qdeclarativetext.cpp | 110 +++++++------- .../qdeclarativetextedit/data/alignments.qml | 2 +- .../qdeclarativetextedit/data/cursorTest.qml | 2 +- .../qdeclarativetextedit/data/geometrySignals.qml | 2 +- .../qdeclarativetextedit/data/http/ErrItem.qml | 2 +- .../qdeclarativetextedit/data/http/NormItem.qml | 2 +- .../data/http/cursorHttpTest.qml | 2 +- .../data/http/cursorHttpTestFail1.qml | 2 +- .../data/http/cursorHttpTestFail2.qml | 2 +- .../data/http/cursorHttpTestPass.qml | 2 +- .../data/httpfail/FailItem.qml | 2 +- .../data/httpslow/WaitItem.qml | 2 +- .../qdeclarativetextedit/data/inputmethodhints.qml | 2 +- .../data/mouseselection_default.qml | 2 +- .../data/mouseselection_false.qml | 2 +- .../data/mouseselection_true.qml | 2 +- .../qdeclarativetextedit/data/navigation.qml | 2 +- .../qdeclarativetextedit/data/readOnly.qml | 2 +- .../tst_qdeclarativetextedit.cpp | 64 ++++---- .../qdeclarativetextinput/data/cursorTest.qml | 2 +- .../qdeclarativetextinput/data/echoMode.qml | 2 +- .../qdeclarativetextinput/data/geometrySignals.qml | 2 +- .../data/horizontalAlignment.qml | 2 +- .../qdeclarativetextinput/data/inputmethods.qml | 2 +- .../qdeclarativetextinput/data/masks.qml | 2 +- .../qdeclarativetextinput/data/maxLength.qml | 2 +- .../qdeclarativetextinput/data/navigation.qml | 2 +- .../qdeclarativetextinput/data/positionAt.qml | 2 +- .../qdeclarativetextinput/data/readOnly.qml | 2 +- .../qdeclarativetextinput/data/validators.qml | 2 +- .../tst_qdeclarativetextinput.cpp | 34 ++--- .../qdeclarativetimer/tst_qdeclarativetimer.cpp | 18 +-- .../qdeclarativevaluetypes/data/conflicting.1.qml | 2 +- .../qdeclarativevaluetypes/data/conflicting.2.qml | 2 +- .../qdeclarativevaluetypes/data/conflicting.3.qml | 2 +- .../qdeclarativevaluetypes/data/deletedObject.qml | 2 +- .../qdeclarativevaluetypes/data/enums.3.qml | 2 +- .../qdeclarativevaluetypes/data/enums.4.qml | 2 +- .../qdeclarativevaluetypes/data/enums.5.qml | 2 +- .../qdeclarativevaluetypes/data/font_write.5.qml | 2 +- .../qdeclarativevaluetypes/data/returnValues.qml | 2 +- .../qdeclarativevaluetypes/data/scriptAccess.qml | 2 +- .../data/sizereadonly_writeerror4.qml | 2 +- .../qdeclarativevaluetypes/data/varAssignment.qml | 2 +- .../declarative/qdeclarativeview/data/error1.qml | 2 +- .../data/resizemodedeclarativeitem.qml | 2 +- .../data/resizemodegraphicswidget.qml | 2 +- .../qdeclarativeviewer/data/orientation.qml | 2 +- .../qdeclarativevisualdatamodel/data/datalist.qml | 2 +- .../data/objectlist.qml | 2 +- .../data/singlerole1.qml | 2 +- .../data/singlerole2.qml | 2 +- .../data/visualdatamodel.qml | 2 +- .../declarative/qdeclarativewebview/data/basic.qml | 2 +- .../qdeclarativewebview/data/elements.qml | 2 +- .../qdeclarativewebview/data/javaScript.qml | 2 +- .../qdeclarativewebview/data/loadError.qml | 2 +- .../qdeclarativewebview/data/newwindows.qml | 2 +- .../qdeclarativewebview/data/propertychanges.qml | 2 +- .../qdeclarativewebview/data/sethtml.qml | 2 +- .../tst_qdeclarativewebview.cpp | 2 +- .../qdeclarativeworkerscript/data/BaseWorker.qml | 2 +- .../qdeclarativeworkerscript/data/worker.qml | 2 +- .../data/worker_pragma.qml | 2 +- .../qdeclarativexmlhttprequest/data/abort.qml | 2 +- .../data/abort_opened.qml | 2 +- .../data/abort_unsent.qml | 2 +- .../qdeclarativexmlhttprequest/data/attr.qml | 2 +- .../data/callbackException.qml | 2 +- .../qdeclarativexmlhttprequest/data/cdata.qml | 2 +- .../data/constructor.qml | 2 +- .../data/defaultState.qml | 2 +- .../qdeclarativexmlhttprequest/data/document.qml | 2 +- .../data/domExceptionCodes.qml | 2 +- .../qdeclarativexmlhttprequest/data/element.qml | 2 +- .../data/getAllResponseHeaders.qml | 2 +- .../data/getAllResponseHeaders_args.qml | 2 +- .../data/getAllResponseHeaders_sent.qml | 2 +- .../data/getAllResponseHeaders_unsent.qml | 2 +- .../data/getResponseHeader.qml | 2 +- .../data/getResponseHeader_args.qml | 2 +- .../data/getResponseHeader_sent.qml | 2 +- .../data/getResponseHeader_unsent.qml | 2 +- .../data/instanceStateValues.qml | 2 +- .../data/invalidMethodUsage.qml | 2 +- .../qdeclarativexmlhttprequest/data/open.qml | 2 +- .../data/open_arg_count.1.qml | 2 +- .../data/open_arg_count.2.qml | 2 +- .../data/open_invalid_method.qml | 2 +- .../qdeclarativexmlhttprequest/data/open_sync.qml | 2 +- .../qdeclarativexmlhttprequest/data/open_user.qml | 2 +- .../data/open_username.qml | 2 +- .../data/redirectError.qml | 2 +- .../data/redirectRecur.qml | 2 +- .../qdeclarativexmlhttprequest/data/redirects.qml | 2 +- .../data/responseText.qml | 2 +- .../data/responseXML_invalid.qml | 2 +- .../data/send_alreadySent.qml | 2 +- .../data/send_data.1.qml | 2 +- .../data/send_data.2.qml | 2 +- .../data/send_data.3.qml | 2 +- .../data/send_data.4.qml | 2 +- .../data/send_data.5.qml | 2 +- .../data/send_data.6.qml | 2 +- .../data/send_data.7.qml | 2 +- .../data/send_ignoreData.qml | 2 +- .../data/send_unsent.qml | 2 +- .../data/setRequestHeader.qml | 2 +- .../data/setRequestHeader_args.qml | 2 +- .../data/setRequestHeader_illegalName.qml | 2 +- .../data/setRequestHeader_sent.qml | 2 +- .../data/setRequestHeader_unsent.qml | 2 +- .../data/staticStateValues.qml | 2 +- .../qdeclarativexmlhttprequest/data/status.qml | 2 +- .../qdeclarativexmlhttprequest/data/statusText.qml | 2 +- .../qdeclarativexmlhttprequest/data/text.qml | 2 +- .../qdeclarativexmlhttprequest/data/utf16.qml | 2 +- .../qdeclarativexmllistmodel/data/model.qml | 2 +- .../qdeclarativexmllistmodel/data/model2.qml | 2 +- .../data/propertychanges.qml | 2 +- .../qdeclarativexmllistmodel/data/recipes.qml | 2 +- .../qdeclarativexmllistmodel/data/roleErrors.qml | 2 +- .../qdeclarativexmllistmodel/data/roleKeys.qml | 2 +- .../qdeclarativexmllistmodel/data/unique.qml | 2 +- .../auto/declarative/qmlvisual/ListView/basic1.qml | 2 +- .../auto/declarative/qmlvisual/ListView/basic2.qml | 2 +- .../auto/declarative/qmlvisual/ListView/basic3.qml | 2 +- .../auto/declarative/qmlvisual/ListView/basic4.qml | 2 +- .../declarative/qmlvisual/ListView/itemlist.qml | 2 +- .../declarative/qmlvisual/ListView/listview.qml | 2 +- .../qmlvisual/Package_Views/packageviews.qml | 2 +- .../bindinganimation/bindinganimation.qml | 2 +- .../colorAnimation/colorAnimation-visual.qml | 2 +- .../qmlvisual/animation/easing/easing.qml | 2 +- .../declarative/qmlvisual/animation/loop/loop.qml | 2 +- .../parallelAnimation/parallelAnimation-visual.qml | 2 +- .../parentAnimation/parentAnimation-visual.qml | 2 +- .../parentAnimation2/parentAnimation2.qml | 2 +- .../pauseAnimation/pauseAnimation-visual.qml | 2 +- .../propertyAction/propertyAction-visual.qml | 2 +- .../qmlvisual/animation/qtbug10586/qtbug10586.qml | 2 +- .../qmlvisual/animation/qtbug13398/qtbug13398.qml | 2 +- .../qmlvisual/animation/reanchor/reanchor.qml | 2 +- .../animation/scriptAction/scriptAction-visual.qml | 2 +- .../declarative/qmlvisual/fillmode/fillmode.qml | 2 +- .../auto/declarative/qmlvisual/focusscope/test.qml | 2 +- .../declarative/qmlvisual/focusscope/test2.qml | 2 +- .../declarative/qmlvisual/focusscope/test3.qml | 2 +- .../qdeclarativeborderimage/animated-smooth.qml | 2 +- .../qmlvisual/qdeclarativeborderimage/animated.qml | 2 +- .../qmlvisual/qdeclarativeborderimage/borders.qml | 2 +- .../content/MyBorderImage.qml | 2 +- .../qdeclarativeflickable/flickable-horizontal.qml | 2 +- .../qdeclarativeflickable/flickable-vertical.qml | 2 +- .../qdeclarativeflipable/test-flipable.qml | 2 +- .../qdeclarativeflipable/test_flipable_resize.qml | 2 +- .../qmlvisual/qdeclarativegridview/gridview.qml | 2 +- .../qmlvisual/qdeclarativegridview/gridview2.qml | 2 +- .../qmlvisual/qdeclarativemousearea/drag.qml | 2 +- .../qdeclarativemousearea/mousearea-flickable.qml | 2 +- .../qdeclarativemousearea/mousearea-visual.qml | 2 +- .../qmlvisual/qdeclarativeparticles/particles.qml | 2 +- .../qdeclarativepathview/test-pathview-2.qml | 2 +- .../qdeclarativepathview/test-pathview.qml | 2 +- .../qmlvisual/qdeclarativepositioners/dynamic.qml | 2 +- .../qdeclarativepositioners/usingRepeater.qml | 2 +- .../smoothedanimation.qml | 2 +- .../smoothedfollow.qml | 2 +- .../qmlvisual/qdeclarativespringfollow/clock.qml | 2 +- .../qmlvisual/qdeclarativespringfollow/follow.qml | 2 +- .../qdeclarativetext/baseline/parentanchor.qml | 2 +- .../qmlvisual/qdeclarativetext/elide/elide.qml | 2 +- .../qmlvisual/qdeclarativetext/elide/elide2.qml | 2 +- .../qdeclarativetext/elide/multilength.qml | 2 +- .../qmlvisual/qdeclarativetext/font/plaintext.qml | 2 +- .../qmlvisual/qdeclarativetext/font/richtext.qml | 2 +- .../qdeclarativetextedit/MultilineEdit.qml | 2 +- .../qdeclarativetextedit/cursorDelegate.qml | 2 +- .../qmlvisual/qdeclarativetextedit/qt-669.qml | 2 +- .../qdeclarativetextedit/usingMultilineEdit.qml | 2 +- .../qmlvisual/qdeclarativetextedit/wrap.qml | 2 +- .../qmlvisual/qdeclarativetextinput/LineEdit.qml | 2 +- .../qdeclarativetextinput/cursorDelegate.qml | 2 +- .../qmlvisual/qdeclarativetextinput/echoMode.qml | 2 +- .../qmlvisual/qdeclarativetextinput/hAlign.qml | 2 +- .../qdeclarativetextinput/usingLineEdit.qml | 2 +- .../declarative/qmlvisual/rect/GradientRect.qml | 2 +- tests/auto/declarative/qmlvisual/rect/MyRect.qml | 2 +- .../declarative/qmlvisual/rect/rect-painting.qml | 2 +- .../auto/declarative/qmlvisual/repeater/basic1.qml | 2 +- .../auto/declarative/qmlvisual/repeater/basic2.qml | 2 +- .../auto/declarative/qmlvisual/repeater/basic3.qml | 2 +- .../auto/declarative/qmlvisual/repeater/basic4.qml | 2 +- .../selftest_noimages/selftest_noimages.qml | 2 +- .../qmlvisual/webview/autosize/autosize.qml | 2 +- .../webview/javascript/evaluateJavaScript.qml | 2 +- .../qmlvisual/webview/javascript/windowObjects.qml | 2 +- .../qmlvisual/webview/settings/fontFamily.qml | 2 +- .../qmlvisual/webview/settings/fontSize.qml | 2 +- .../webview/settings/noAutoLoadImages.qml | 2 +- .../qmlvisual/webview/settings/setFontFamily.qml | 2 +- .../qmlvisual/webview/zooming/pageWidth.qml | 2 +- .../qmlvisual/webview/zooming/renderControl.qml | 2 +- .../qmlvisual/webview/zooming/resolution.qml | 2 +- .../qmlvisual/webview/zooming/zoomTextOnly.qml | 2 +- .../qmlvisual/webview/zooming/zooming.qml | 2 +- .../lupdate/testdata/good/parseqml/main.qml | 2 +- .../declarative/compilation/data/BoomBlock.qml | 2 +- .../benchmarks/declarative/creation/data/item.qml | 2 +- .../declarative/creation/data/qobject.qml | 2 +- .../declarative/creation/tst_creation.cpp | 2 +- .../qdeclarativecomponent/data/object.qml | 2 +- .../qdeclarativecomponent/data/object_id.qml | 2 +- .../data/samegame/BoomBlock.qml | 2 +- .../data/synthesized_properties.2.qml | 2 +- .../data/synthesized_properties.qml | 2 +- .../qdeclarativemetaproperty/data/object.qml | 2 +- .../data/synthesized_object.qml | 2 +- tests/benchmarks/declarative/qmltime/example.qml | 2 +- .../declarative/qmltime/tests/anchors/empty.qml | 2 +- .../declarative/qmltime/tests/anchors/fill.qml | 2 +- .../declarative/qmltime/tests/anchors/null.qml | 2 +- .../declarative/qmltime/tests/animation/large.qml | 2 +- .../qmltime/tests/animation/largeNoProps.qml | 2 +- .../qmltime/tests/item_creation/children.qml | 2 +- .../qmltime/tests/item_creation/data.qml | 2 +- .../qmltime/tests/item_creation/no_creation.qml | 2 +- .../qmltime/tests/item_creation/resources.qml | 2 +- .../declarative/qmltime/tests/loader/Loaded.qml | 2 +- .../qmltime/tests/loader/component_loader.qml | 2 +- .../qmltime/tests/loader/empty_loader.qml | 2 +- .../declarative/qmltime/tests/loader/no_loader.qml | 2 +- .../qmltime/tests/loader/source_loader.qml | 2 +- .../tests/positioner_creation/no_positioner.qml | 2 +- .../tests/positioner_creation/null_positioner.qml | 2 +- .../tests/positioner_creation/positioner.qml | 2 +- .../qmltime/tests/vmemetaobject/null.qml | 2 +- .../qmltime/tests/vmemetaobject/property.qml | 2 +- .../declarative/script/data/CustomObject.qml | 2 +- tests/benchmarks/declarative/script/data/block.qml | 2 +- .../declarative/script/data/global_prop.qml | 2 +- tools/qml/browser/Browser.qml | 2 +- tools/qml/startup/Logo.qml | 2 +- tools/qml/startup/startup.qml | 2 +- 1101 files changed, 1424 insertions(+), 1424 deletions(-) diff --git a/demos/declarative/calculator/Core/Button.qml b/demos/declarative/calculator/Core/Button.qml index 7b19feb..f37de48 100644 --- a/demos/declarative/calculator/Core/Button.qml +++ b/demos/declarative/calculator/Core/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 BorderImage { id: button diff --git a/demos/declarative/calculator/Core/Display.qml b/demos/declarative/calculator/Core/Display.qml index 53f74c9..f928d3a 100644 --- a/demos/declarative/calculator/Core/Display.qml +++ b/demos/declarative/calculator/Core/Display.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 BorderImage { id: image diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml index 68c922b..3e1c650 100644 --- a/demos/declarative/calculator/calculator.qml +++ b/demos/declarative/calculator/calculator.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "Core" import "Core/calculator.js" as CalcEngine diff --git a/demos/declarative/flickr/common/Progress.qml b/demos/declarative/flickr/common/Progress.qml index 23bffb9..b928554 100644 --- a/demos/declarative/flickr/common/Progress.qml +++ b/demos/declarative/flickr/common/Progress.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { property variant progress: 0 diff --git a/demos/declarative/flickr/common/RssModel.qml b/demos/declarative/flickr/common/RssModel.qml index b4ea3ce..0c1c834 100644 --- a/demos/declarative/flickr/common/RssModel.qml +++ b/demos/declarative/flickr/common/RssModel.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { property string tags : "" diff --git a/demos/declarative/flickr/common/ScrollBar.qml b/demos/declarative/flickr/common/ScrollBar.qml index 1574915..dfe3cbf 100644 --- a/demos/declarative/flickr/common/ScrollBar.qml +++ b/demos/declarative/flickr/common/ScrollBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/flickr/common/Slider.qml b/demos/declarative/flickr/common/Slider.qml index faa2e5f..edccc7d 100644 --- a/demos/declarative/flickr/common/Slider.qml +++ b/demos/declarative/flickr/common/Slider.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: slider; width: 400; height: 16 diff --git a/demos/declarative/flickr/flickr-90.qml b/demos/declarative/flickr/flickr-90.qml index 3db44de..31b1d91 100644 --- a/demos/declarative/flickr/flickr-90.qml +++ b/demos/declarative/flickr/flickr-90.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { width: 480; height: 320 diff --git a/demos/declarative/flickr/flickr.qml b/demos/declarative/flickr/flickr.qml index 152f9f9..1533c04 100644 --- a/demos/declarative/flickr/flickr.qml +++ b/demos/declarative/flickr/flickr.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "common" as Common import "mobile" as Mobile diff --git a/demos/declarative/flickr/mobile/Button.qml b/demos/declarative/flickr/mobile/Button.qml index 6228606..74a7dbb 100644 --- a/demos/declarative/flickr/mobile/Button.qml +++ b/demos/declarative/flickr/mobile/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/flickr/mobile/GridDelegate.qml b/demos/declarative/flickr/mobile/GridDelegate.qml index c368e95..8f01292 100644 --- a/demos/declarative/flickr/mobile/GridDelegate.qml +++ b/demos/declarative/flickr/mobile/GridDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: wrapper; width: GridView.view.cellWidth; height: GridView.view.cellHeight diff --git a/demos/declarative/flickr/mobile/ImageDetails.qml b/demos/declarative/flickr/mobile/ImageDetails.qml index 6408fc6..5dd3b4e 100644 --- a/demos/declarative/flickr/mobile/ImageDetails.qml +++ b/demos/declarative/flickr/mobile/ImageDetails.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "../common" as Common Flipable { diff --git a/demos/declarative/flickr/mobile/ListDelegate.qml b/demos/declarative/flickr/mobile/ListDelegate.qml index 9ec02e1..0773547 100644 --- a/demos/declarative/flickr/mobile/ListDelegate.qml +++ b/demos/declarative/flickr/mobile/ListDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Component { Item { diff --git a/demos/declarative/flickr/mobile/TitleBar.qml b/demos/declarative/flickr/mobile/TitleBar.qml index 60ca4dc..f283307 100644 --- a/demos/declarative/flickr/mobile/TitleBar.qml +++ b/demos/declarative/flickr/mobile/TitleBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: titleBar diff --git a/demos/declarative/flickr/mobile/ToolBar.qml b/demos/declarative/flickr/mobile/ToolBar.qml index b9cb915..55f19d2 100644 --- a/demos/declarative/flickr/mobile/ToolBar.qml +++ b/demos/declarative/flickr/mobile/ToolBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: toolbar diff --git a/demos/declarative/minehunt/MinehuntCore/Explosion.qml b/demos/declarative/minehunt/MinehuntCore/Explosion.qml index b2644ff..f04d033 100644 --- a/demos/declarative/minehunt/MinehuntCore/Explosion.qml +++ b/demos/declarative/minehunt/MinehuntCore/Explosion.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/demos/declarative/minehunt/MinehuntCore/Tile.qml b/demos/declarative/minehunt/MinehuntCore/Tile.qml index 64dd63c..1853ed9 100644 --- a/demos/declarative/minehunt/MinehuntCore/Tile.qml +++ b/demos/declarative/minehunt/MinehuntCore/Tile.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Flipable { id: flipable diff --git a/demos/declarative/minehunt/minehunt.qml b/demos/declarative/minehunt/minehunt.qml index 4accb52..eb67b06 100644 --- a/demos/declarative/minehunt/minehunt.qml +++ b/demos/declarative/minehunt/minehunt.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "MinehuntCore" 1.0 Item { diff --git a/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml b/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml index 0df8155..9001033 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Component { id: albumDelegate diff --git a/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml b/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml index e55bf17..7b28930 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: container diff --git a/demos/declarative/photoviewer/PhotoViewerCore/Button.qml b/demos/declarative/photoviewer/PhotoViewerCore/Button.qml index 47b90c8..29f2bb7 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/Button.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml index decc0fe..06f8062 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml b/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml index dadb409..5948b5d 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "script/script.js" as Script Package { diff --git a/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml b/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml index 779d342..a0756ae 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml b/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml index 29bad52..15bb67f 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { property string tags : "" diff --git a/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml b/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml index 5e93046..9358975 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Flipable { id: flipable diff --git a/demos/declarative/photoviewer/photoviewer.qml b/demos/declarative/photoviewer/photoviewer.qml index 3072ea2..0f59c64 100644 --- a/demos/declarative/photoviewer/photoviewer.qml +++ b/demos/declarative/photoviewer/photoviewer.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "PhotoViewerCore" Rectangle { diff --git a/demos/declarative/rssnews/content/BusyIndicator.qml b/demos/declarative/rssnews/content/BusyIndicator.qml index 13f54f2..e305cbe 100644 --- a/demos/declarative/rssnews/content/BusyIndicator.qml +++ b/demos/declarative/rssnews/content/BusyIndicator.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: container diff --git a/demos/declarative/rssnews/content/CategoryDelegate.qml b/demos/declarative/rssnews/content/CategoryDelegate.qml index edfb4bb..c4fa8cc 100644 --- a/demos/declarative/rssnews/content/CategoryDelegate.qml +++ b/demos/declarative/rssnews/content/CategoryDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: delegate diff --git a/demos/declarative/rssnews/content/NewsDelegate.qml b/demos/declarative/rssnews/content/NewsDelegate.qml index cfe9b00..cf88f4e 100644 --- a/demos/declarative/rssnews/content/NewsDelegate.qml +++ b/demos/declarative/rssnews/content/NewsDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: delegate diff --git a/demos/declarative/rssnews/content/RssFeeds.qml b/demos/declarative/rssnews/content/RssFeeds.qml index 62e7f14..37c4b69 100644 --- a/demos/declarative/rssnews/content/RssFeeds.qml +++ b/demos/declarative/rssnews/content/RssFeeds.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 ListModel { id: rssFeeds diff --git a/demos/declarative/rssnews/content/ScrollBar.qml b/demos/declarative/rssnews/content/ScrollBar.qml index e0214d2..f20f0aa 100644 --- a/demos/declarative/rssnews/content/ScrollBar.qml +++ b/demos/declarative/rssnews/content/ScrollBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/rssnews/rssnews.qml b/demos/declarative/rssnews/rssnews.qml index fb5b5a3..f6fe188 100644 --- a/demos/declarative/rssnews/rssnews.qml +++ b/demos/declarative/rssnews/rssnews.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/demos/declarative/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/SamegameCore/BoomBlock.qml index 43050af..afda29c 100644 --- a/demos/declarative/samegame/SamegameCore/BoomBlock.qml +++ b/demos/declarative/samegame/SamegameCore/BoomBlock.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/demos/declarative/samegame/SamegameCore/Button.qml b/demos/declarative/samegame/SamegameCore/Button.qml index d5979b2..7fb7b65 100644 --- a/demos/declarative/samegame/SamegameCore/Button.qml +++ b/demos/declarative/samegame/SamegameCore/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/demos/declarative/samegame/SamegameCore/Dialog.qml b/demos/declarative/samegame/SamegameCore/Dialog.qml index 7e64bd6..e1f3900 100644 --- a/demos/declarative/samegame/SamegameCore/Dialog.qml +++ b/demos/declarative/samegame/SamegameCore/Dialog.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index 3e9c505..f66c40e 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "SamegameCore" import "SamegameCore/samegame.js" as Logic diff --git a/demos/declarative/snake/content/Button.qml b/demos/declarative/snake/content/Button.qml index 5d9eebe..cf4519d 100644 --- a/demos/declarative/snake/content/Button.qml +++ b/demos/declarative/snake/content/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/demos/declarative/snake/content/Cookie.qml b/demos/declarative/snake/content/Cookie.qml index eb57fd2..b4af9fe 100644 --- a/demos/declarative/snake/content/Cookie.qml +++ b/demos/declarative/snake/content/Cookie.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/demos/declarative/snake/content/HighScoreModel.qml b/demos/declarative/snake/content/HighScoreModel.qml index 42482f8..e3a4704 100644 --- a/demos/declarative/snake/content/HighScoreModel.qml +++ b/demos/declarative/snake/content/HighScoreModel.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 // Models a high score table. // diff --git a/demos/declarative/snake/content/Link.qml b/demos/declarative/snake/content/Link.qml index 942008d..16b6e1e 100644 --- a/demos/declarative/snake/content/Link.qml +++ b/demos/declarative/snake/content/Link.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { id:link diff --git a/demos/declarative/snake/content/Skull.qml b/demos/declarative/snake/content/Skull.qml index 0cc6186..1a3ff7e 100644 --- a/demos/declarative/snake/content/Skull.qml +++ b/demos/declarative/snake/content/Skull.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { property bool spawned: false diff --git a/demos/declarative/snake/snake.qml b/demos/declarative/snake/snake.qml index 4d989df..5b69217 100644 --- a/demos/declarative/snake/snake.qml +++ b/demos/declarative/snake/snake.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" as Content import "content/snake.js" as Logic diff --git a/demos/declarative/twitter/TwitterCore/Button.qml b/demos/declarative/twitter/TwitterCore/Button.qml index 437b013..a1fc2a2 100644 --- a/demos/declarative/twitter/TwitterCore/Button.qml +++ b/demos/declarative/twitter/TwitterCore/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/twitter/TwitterCore/FatDelegate.qml b/demos/declarative/twitter/TwitterCore/FatDelegate.qml index 27dd300..896abbe 100644 --- a/demos/declarative/twitter/TwitterCore/FatDelegate.qml +++ b/demos/declarative/twitter/TwitterCore/FatDelegate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Component { id: listDelegate diff --git a/demos/declarative/twitter/TwitterCore/Input.qml b/demos/declarative/twitter/TwitterCore/Input.qml index a33a995..b15f0d5 100644 --- a/demos/declarative/twitter/TwitterCore/Input.qml +++ b/demos/declarative/twitter/TwitterCore/Input.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { id:container diff --git a/demos/declarative/twitter/TwitterCore/Loading.qml b/demos/declarative/twitter/TwitterCore/Loading.qml index b979291..afeafa0 100644 --- a/demos/declarative/twitter/TwitterCore/Loading.qml +++ b/demos/declarative/twitter/TwitterCore/Loading.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: loading; source: "images/loading.png" diff --git a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml index 29b7713..bc8e0de 100644 --- a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml +++ b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { TitleBar { id: titleBar; width: parent.width; height: 60; diff --git a/demos/declarative/twitter/TwitterCore/RssModel.qml b/demos/declarative/twitter/TwitterCore/RssModel.qml index d03cdb3..276df62 100644 --- a/demos/declarative/twitter/TwitterCore/RssModel.qml +++ b/demos/declarative/twitter/TwitterCore/RssModel.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: wrapper property variant model: xmlModel diff --git a/demos/declarative/twitter/TwitterCore/SearchView.qml b/demos/declarative/twitter/TwitterCore/SearchView.qml index 22df374..effab30 100644 --- a/demos/declarative/twitter/TwitterCore/SearchView.qml +++ b/demos/declarative/twitter/TwitterCore/SearchView.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { id: wrapper diff --git a/demos/declarative/twitter/TwitterCore/TitleBar.qml b/demos/declarative/twitter/TwitterCore/TitleBar.qml index 70de81d..19da491 100644 --- a/demos/declarative/twitter/TwitterCore/TitleBar.qml +++ b/demos/declarative/twitter/TwitterCore/TitleBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: titleBar diff --git a/demos/declarative/twitter/TwitterCore/ToolBar.qml b/demos/declarative/twitter/TwitterCore/ToolBar.qml index e18f5c6..4ef92ff 100644 --- a/demos/declarative/twitter/TwitterCore/ToolBar.qml +++ b/demos/declarative/twitter/TwitterCore/ToolBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: toolbar diff --git a/demos/declarative/twitter/TwitterCore/UserModel.qml b/demos/declarative/twitter/TwitterCore/UserModel.qml index d8ca804..013b827 100644 --- a/demos/declarative/twitter/TwitterCore/UserModel.qml +++ b/demos/declarative/twitter/TwitterCore/UserModel.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //This "model" gets the user information about the searched user. Mainly for the icon. diff --git a/demos/declarative/twitter/twitter.qml b/demos/declarative/twitter/twitter.qml index 6d224a2..4495523 100644 --- a/demos/declarative/twitter/twitter.qml +++ b/demos/declarative/twitter/twitter.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "TwitterCore" 1.0 as Twitter Item { diff --git a/demos/declarative/webbrowser/content/Button.qml b/demos/declarative/webbrowser/content/Button.qml index 2a2e7ef..2da1c11 100644 --- a/demos/declarative/webbrowser/content/Button.qml +++ b/demos/declarative/webbrowser/content/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { property alias image: icon.source diff --git a/demos/declarative/webbrowser/content/FlickableWebView.qml b/demos/declarative/webbrowser/content/FlickableWebView.qml index fb479d2..6f4e09c 100644 --- a/demos/declarative/webbrowser/content/FlickableWebView.qml +++ b/demos/declarative/webbrowser/content/FlickableWebView.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 Flickable { diff --git a/demos/declarative/webbrowser/content/Header.qml b/demos/declarative/webbrowser/content/Header.qml index d3ccae3..88e3000 100644 --- a/demos/declarative/webbrowser/content/Header.qml +++ b/demos/declarative/webbrowser/content/Header.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: header diff --git a/demos/declarative/webbrowser/content/ScrollBar.qml b/demos/declarative/webbrowser/content/ScrollBar.qml index d3f272c..19309fa 100644 --- a/demos/declarative/webbrowser/content/ScrollBar.qml +++ b/demos/declarative/webbrowser/content/ScrollBar.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/webbrowser/content/UrlInput.qml b/demos/declarative/webbrowser/content/UrlInput.qml index 4f49821..0468b64 100644 --- a/demos/declarative/webbrowser/content/UrlInput.qml +++ b/demos/declarative/webbrowser/content/UrlInput.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml index 3bff0fe..a21fa0b 100644 --- a/demos/declarative/webbrowser/webbrowser.qml +++ b/demos/declarative/webbrowser/webbrowser.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 import "content" diff --git a/demos/qtdemo/qmlShell.qml b/demos/qtdemo/qmlShell.qml index 24c12ae..2764865 100644 --- a/demos/qtdemo/qmlShell.qml +++ b/demos/qtdemo/qmlShell.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: main diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 467b7d0..044c1e7 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -52,7 +52,7 @@ An \c import statement includes the module name, and possibly a version number. This can be seen in the snippet commonly found at the top of QML files: \qml - import Qt 4.7 + import QtQuick 1.0 \endqml This imports version 4.7 of the "Qt" module into the global namespace. (The QML @@ -126,7 +126,7 @@ application code. When importing an installed module, an un-quoted URI is used, with a mandatory version number: \code - import Qt 4.7 + import QtQuick 1.0 import com.nokia.qml.mymodule 1.0 \endcode @@ -181,7 +181,7 @@ By default, when a module is imported, its contents are imported into the global To import a module into a specific namespace, use the \e as keyword: \qml - import Qt 4.7 as QtLibrary + import QtQuick 1.0 as QtLibrary import "../MyComponents" as MyComponents import com.nokia.qml.mymodule 1.0 as MyModule \endqml @@ -199,7 +199,7 @@ Types from these modules can then only be used when qualified by the namespace: Multiple modules can be imported into the same namespace in the same way that multiple modules can be imported into the global namespace: \qml - import Qt 4.7 as Nokia + import QtQuick 1.0 as Nokia import Ovi 1.0 as Nokia \endqml diff --git a/doc/src/declarative/qdeclarativedebugging.qdoc b/doc/src/declarative/qdeclarativedebugging.qdoc index 64c312c..26d3b38 100644 --- a/doc/src/declarative/qdeclarativedebugging.qdoc +++ b/doc/src/declarative/qdeclarativedebugging.qdoc @@ -59,7 +59,7 @@ from QML's import loading mechanisms. For example, for a simple QML file like this: \qml -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 } \endqml diff --git a/doc/src/declarative/qdeclarativedocument.qdoc b/doc/src/declarative/qdeclarativedocument.qdoc index 8ca6c11..b6af90b 100644 --- a/doc/src/declarative/qdeclarativedocument.qdoc +++ b/doc/src/declarative/qdeclarativedocument.qdoc @@ -82,7 +82,7 @@ Each instance is created with a different value for its \c text property: \o \snippet doc/src/snippets/declarative/qml-documents/qmldocuments.qml document \o \qml -import Qt 4.7 +import QtQuick 1.0 Column { spacing: 10 diff --git a/doc/src/declarative/qdeclarativei18n.qdoc b/doc/src/declarative/qdeclarativei18n.qdoc index 70a3587..620b902 100644 --- a/doc/src/declarative/qdeclarativei18n.qdoc +++ b/doc/src/declarative/qdeclarativei18n.qdoc @@ -58,7 +58,7 @@ that needs to be translated is enclosed in a call to \c qsTr(). hello.qml: \qml -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc index fa42f59..9d89edf 100644 --- a/doc/src/declarative/qdeclarativeintro.qdoc +++ b/doc/src/declarative/qdeclarativeintro.qdoc @@ -46,7 +46,7 @@ technologies like HTML and CSS, but it's not required. QML looks like this: \code -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/doc/src/declarative/qmlruntime.qdoc b/doc/src/declarative/qmlruntime.qdoc index 9a84237..51f9e4d 100644 --- a/doc/src/declarative/qmlruntime.qdoc +++ b/doc/src/declarative/qmlruntime.qdoc @@ -60,7 +60,7 @@ QDeclarativeView is a QWidget-based class that is able to load QML files. For example, if there is a QML file, \c application.qml, like this: \qml - import Qt 4.7 + import QtQuick 1.0 Rectangle { width: 100; height: 100; color: "red" } \endqml diff --git a/doc/src/declarative/qmlviewer.qdoc b/doc/src/declarative/qmlviewer.qdoc index 41c4c80..81ad218 100644 --- a/doc/src/declarative/qmlviewer.qdoc +++ b/doc/src/declarative/qmlviewer.qdoc @@ -118,7 +118,7 @@ For example, this QML document refers to a \c lottoNumbers property which does not actually exist within the document: \qml -import Qt 4.7 +import QtQuick 1.0 ListView { width: 200; height: 300 @@ -131,7 +131,7 @@ If within the document's directory, there is a "dummydata" directory which contains a \c lottoNumbers.qml file like this: \qml -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { number: 23 } @@ -146,7 +146,7 @@ Child properties are included when loaded from dummy data. The following documen refers to a \c clock.time property: \qml -import Qt 4.7 +import QtQuick 1.0 Text { text: clock.time } \endqml @@ -154,7 +154,7 @@ The text value could be filled by a \c dummydata/clock.qml file with a \c time property in the root context: \qml -import Qt 4.7 +import QtQuick 1.0 QtObject { property int time: 54321 } \endqml diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 6eade18..35a05d2 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -188,7 +188,7 @@ is to have a "running" property in \c main.qml. This leads to much nicer QML co \o \code // main.qml -import Qt 4.7 +import QtQuick 1.0 Rectangle { MouseArea { diff --git a/doc/src/declarative/scope.qdoc b/doc/src/declarative/scope.qdoc index 363ba8d..5501242 100644 --- a/doc/src/declarative/scope.qdoc +++ b/doc/src/declarative/scope.qdoc @@ -112,7 +112,7 @@ following example shows a simple QML file that accesses some enumeration values and calls an imported JavaScript function. \code -import Qt 4.7 +import QtQuick 1.0 import "code.js" as Code ListView { @@ -253,7 +253,7 @@ is used, the \c title property may resolve differently. \code // TitlePage.qml -import Qt 4.7 +import QtQuick 1.0 Item { property string title @@ -269,7 +269,7 @@ Item { } // TitleText.qml -import Qt 4.7 +import QtQuick 1.0 Text { property int size text: "" + title + "" @@ -285,7 +285,7 @@ to use property interfaces, like this: \code // TitlePage.qml -import Qt 4.7 +import QtQuick 1.0 Item { id: root property string title @@ -304,7 +304,7 @@ Item { } // TitleText.qml -import Qt 4.7 +import QtQuick 1.0 Text { property string title property int size diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index a5e45d9..e2d6e72 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -73,7 +73,7 @@ \snippet examples/tutorials/gettingStarted/gsQml/part0/Button.qml document - First, the \c { import Qt 4.7 } allows the qmlviewer tool to import the QML elements + First, the \c { import QtQuick 1.0 } allows the qmlviewer tool to import the QML elements we will later use. This line must exist for every QML file. Notice that the version of Qt modules is included in the import statement. @@ -209,7 +209,7 @@ \c FileMenu.qml. \code - import Qt 4.7 \\import the main Qt QML module + import QtQuick 1.0 \\import the main Qt QML module import "folderName" \\import the contents of the folder import "script.js" as Script \\import a Javascript file and name it as Script \endcode diff --git a/doc/src/snippets/declarative/SelfDestroyingRect.qml b/doc/src/snippets/declarative/SelfDestroyingRect.qml index 413c04e..f89588b 100644 --- a/doc/src/snippets/declarative/SelfDestroyingRect.qml +++ b/doc/src/snippets/declarative/SelfDestroyingRect.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/Sprite.qml b/doc/src/snippets/declarative/Sprite.qml index 3928c4d..3bcd599 100644 --- a/doc/src/snippets/declarative/Sprite.qml +++ b/doc/src/snippets/declarative/Sprite.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 80; height: 50; color: "red" } //![0] diff --git a/doc/src/snippets/declarative/anchoranimation.qml b/doc/src/snippets/declarative/anchoranimation.qml index f149326..d8235f6 100644 --- a/doc/src/snippets/declarative/anchoranimation.qml +++ b/doc/src/snippets/declarative/anchoranimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/doc/src/snippets/declarative/anchorchanges.qml b/doc/src/snippets/declarative/anchorchanges.qml index 19356d7..66c31c5 100644 --- a/doc/src/snippets/declarative/anchorchanges.qml +++ b/doc/src/snippets/declarative/anchorchanges.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: window diff --git a/doc/src/snippets/declarative/animatedimage.qml b/doc/src/snippets/declarative/animatedimage.qml index 66abbae..a9b58c5 100644 --- a/doc/src/snippets/declarative/animatedimage.qml +++ b/doc/src/snippets/declarative/animatedimage.qml @@ -42,7 +42,7 @@ // examples/declarative/imageelements/animatedimage //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: animation.width; height: animation.height + 8 diff --git a/doc/src/snippets/declarative/animation-behavioral.qml b/doc/src/snippets/declarative/animation-behavioral.qml index a4fa648..0462e9a 100644 --- a/doc/src/snippets/declarative/animation-behavioral.qml +++ b/doc/src/snippets/declarative/animation-behavioral.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/animation-easing.qml b/doc/src/snippets/declarative/animation-easing.qml index 97f6e60..3438737 100644 --- a/doc/src/snippets/declarative/animation-easing.qml +++ b/doc/src/snippets/declarative/animation-easing.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/animation-elements.qml b/doc/src/snippets/declarative/animation-elements.qml index a65bd67..7843b75 100644 --- a/doc/src/snippets/declarative/animation-elements.qml +++ b/doc/src/snippets/declarative/animation-elements.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Row { diff --git a/doc/src/snippets/declarative/animation-groups.qml b/doc/src/snippets/declarative/animation-groups.qml index ba546c9..57cc8c2 100644 --- a/doc/src/snippets/declarative/animation-groups.qml +++ b/doc/src/snippets/declarative/animation-groups.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Row { diff --git a/doc/src/snippets/declarative/animation-propertyvaluesource.qml b/doc/src/snippets/declarative/animation-propertyvaluesource.qml index 366505c..ba56afd 100644 --- a/doc/src/snippets/declarative/animation-propertyvaluesource.qml +++ b/doc/src/snippets/declarative/animation-propertyvaluesource.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/animation-signalhandler.qml b/doc/src/snippets/declarative/animation-signalhandler.qml index 492c007..16f27c6 100644 --- a/doc/src/snippets/declarative/animation-signalhandler.qml +++ b/doc/src/snippets/declarative/animation-signalhandler.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/animation-standalone.qml b/doc/src/snippets/declarative/animation-standalone.qml index c847d02..1ff4073 100644 --- a/doc/src/snippets/declarative/animation-standalone.qml +++ b/doc/src/snippets/declarative/animation-standalone.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/animation-transitions.qml b/doc/src/snippets/declarative/animation-transitions.qml index 5b0bb84..025fc90 100644 --- a/doc/src/snippets/declarative/animation-transitions.qml +++ b/doc/src/snippets/declarative/animation-transitions.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/behavior.qml b/doc/src/snippets/declarative/behavior.qml index 7f66e5a..7e2d1e7 100644 --- a/doc/src/snippets/declarative/behavior.qml +++ b/doc/src/snippets/declarative/behavior.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml index 0ed9943..ba30491 100644 --- a/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml +++ b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml index 680709d..98a4175 100644 --- a/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml +++ b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/doc/src/snippets/declarative/borderimage/normal-image.qml b/doc/src/snippets/declarative/borderimage/normal-image.qml index 85a7f52..f8e3c60 100644 --- a/doc/src/snippets/declarative/borderimage/normal-image.qml +++ b/doc/src/snippets/declarative/borderimage/normal-image.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/doc/src/snippets/declarative/codingconventions/dotproperties.qml b/doc/src/snippets/declarative/codingconventions/dotproperties.qml index 8a173cd..98cb09c 100644 --- a/doc/src/snippets/declarative/codingconventions/dotproperties.qml +++ b/doc/src/snippets/declarative/codingconventions/dotproperties.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { diff --git a/doc/src/snippets/declarative/codingconventions/javascript-imports.qml b/doc/src/snippets/declarative/codingconventions/javascript-imports.qml index 391bf27..931349f 100644 --- a/doc/src/snippets/declarative/codingconventions/javascript-imports.qml +++ b/doc/src/snippets/declarative/codingconventions/javascript-imports.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] import "myscript.js" as Script diff --git a/doc/src/snippets/declarative/codingconventions/javascript.qml b/doc/src/snippets/declarative/codingconventions/javascript.qml index 90790b9..6c94626 100644 --- a/doc/src/snippets/declarative/codingconventions/javascript.qml +++ b/doc/src/snippets/declarative/codingconventions/javascript.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { diff --git a/doc/src/snippets/declarative/codingconventions/lists.qml b/doc/src/snippets/declarative/codingconventions/lists.qml index 8d2bdbc..a7f3c8f 100644 --- a/doc/src/snippets/declarative/codingconventions/lists.qml +++ b/doc/src/snippets/declarative/codingconventions/lists.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { Item { diff --git a/doc/src/snippets/declarative/codingconventions/photo.qml b/doc/src/snippets/declarative/codingconventions/photo.qml index 359a756..2eba035 100644 --- a/doc/src/snippets/declarative/codingconventions/photo.qml +++ b/doc/src/snippets/declarative/codingconventions/photo.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //! [0] Rectangle { diff --git a/doc/src/snippets/declarative/coloranimation.qml b/doc/src/snippets/declarative/coloranimation.qml index d904721..452599e 100644 --- a/doc/src/snippets/declarative/coloranimation.qml +++ b/doc/src/snippets/declarative/coloranimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/column/column.qml b/doc/src/snippets/declarative/column/column.qml index 6d378bb..45c6822 100644 --- a/doc/src/snippets/declarative/column/column.qml +++ b/doc/src/snippets/declarative/column/column.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Item { width: 310; height: 170 diff --git a/doc/src/snippets/declarative/column/vertical-positioner-transition.qml b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml index 7785776..cd2fdcc 100644 --- a/doc/src/snippets/declarative/column/vertical-positioner-transition.qml +++ b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //! [document] Column { diff --git a/doc/src/snippets/declarative/column/vertical-positioner.qml b/doc/src/snippets/declarative/column/vertical-positioner.qml index 86ecc55..693734b 100644 --- a/doc/src/snippets/declarative/column/vertical-positioner.qml +++ b/doc/src/snippets/declarative/column/vertical-positioner.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //! [document] Column { diff --git a/doc/src/snippets/declarative/comments.qml b/doc/src/snippets/declarative/comments.qml index aa034c6..a8e47ad 100644 --- a/doc/src/snippets/declarative/comments.qml +++ b/doc/src/snippets/declarative/comments.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 //![0] Text { diff --git a/doc/src/snippets/declarative/component.qml b/doc/src/snippets/declarative/component.qml index 84c063f..ed55803 100644 --- a/doc/src/snippets/declarative/component.qml +++ b/doc/src/snippets/declarative/component.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/createComponent-simple.qml b/doc/src/snippets/declarative/createComponent-simple.qml index f4c240d..f052529 100644 --- a/doc/src/snippets/declarative/createComponent-simple.qml +++ b/doc/src/snippets/declarative/createComponent-simple.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/doc/src/snippets/declarative/createComponent.qml b/doc/src/snippets/declarative/createComponent.qml index f1a7436..619c02d 100644 --- a/doc/src/snippets/declarative/createComponent.qml +++ b/doc/src/snippets/declarative/createComponent.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 import "componentCreation.js" as MyScript Rectangle { diff --git a/doc/src/snippets/declarative/createQmlObject.qml b/doc/src/snippets/declarative/createQmlObject.qml index 6a4eae8..cfcffe1 100644 --- a/doc/src/snippets/declarative/createQmlObject.qml +++ b/doc/src/snippets/declarative/createQmlObject.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: parentItem @@ -48,7 +48,7 @@ Rectangle { function createIt() { //![0] -var newObject = Qt.createQmlObject('import Qt 4.7; Rectangle {color: "red"; width: 20; height: 20}', +var newObject = Qt.createQmlObject('import QtQuick 1.0; Rectangle {color: "red"; width: 20; height: 20}', parentItem, "dynamicSnippet1"); //![0] diff --git a/doc/src/snippets/declarative/dynamicObjects-destroy.qml b/doc/src/snippets/declarative/dynamicObjects-destroy.qml index b4ae80c..665f631 100644 --- a/doc/src/snippets/declarative/dynamicObjects-destroy.qml +++ b/doc/src/snippets/declarative/dynamicObjects-destroy.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/doc/src/snippets/declarative/flickable.qml b/doc/src/snippets/declarative/flickable.qml index a283e9a..80e7301 100644 --- a/doc/src/snippets/declarative/flickable.qml +++ b/doc/src/snippets/declarative/flickable.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Flickable { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/flickableScrollbar.qml b/doc/src/snippets/declarative/flickableScrollbar.qml index fc06f63..18ea45a 100644 --- a/doc/src/snippets/declarative/flickableScrollbar.qml +++ b/doc/src/snippets/declarative/flickableScrollbar.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/doc/src/snippets/declarative/flipable/flipable.qml b/doc/src/snippets/declarative/flipable/flipable.qml index eaf367a..cd5da4b 100644 --- a/doc/src/snippets/declarative/flipable/flipable.qml +++ b/doc/src/snippets/declarative/flipable/flipable.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [0] -import Qt 4.7 +import QtQuick 1.0 Flipable { id: flipable diff --git a/doc/src/snippets/declarative/flow-diagram.qml b/doc/src/snippets/declarative/flow-diagram.qml index f34e3fd..c970164 100644 --- a/doc/src/snippets/declarative/flow-diagram.qml +++ b/doc/src/snippets/declarative/flow-diagram.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightblue" diff --git a/doc/src/snippets/declarative/flow.qml b/doc/src/snippets/declarative/flow.qml index 809627e..167cbdb 100644 --- a/doc/src/snippets/declarative/flow.qml +++ b/doc/src/snippets/declarative/flow.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightblue" diff --git a/doc/src/snippets/declarative/focusscopes.qml b/doc/src/snippets/declarative/focusscopes.qml index da6a850..4713c0c 100644 --- a/doc/src/snippets/declarative/focusscopes.qml +++ b/doc/src/snippets/declarative/focusscopes.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/doc/src/snippets/declarative/folderlistmodel.qml b/doc/src/snippets/declarative/folderlistmodel.qml index a5e0071..d1cd34b 100644 --- a/doc/src/snippets/declarative/folderlistmodel.qml +++ b/doc/src/snippets/declarative/folderlistmodel.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.folderlistmodel 1.0 ListView { diff --git a/doc/src/snippets/declarative/gradient.qml b/doc/src/snippets/declarative/gradient.qml index 4c8bd40..47165a4 100644 --- a/doc/src/snippets/declarative/gradient.qml +++ b/doc/src/snippets/declarative/gradient.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![code] Rectangle { diff --git a/doc/src/snippets/declarative/grid/grid-items.qml b/doc/src/snippets/declarative/grid/grid-items.qml index 2382d38..62a444d 100644 --- a/doc/src/snippets/declarative/grid/grid-items.qml +++ b/doc/src/snippets/declarative/grid/grid-items.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 112; height: 112 diff --git a/doc/src/snippets/declarative/grid/grid-no-spacing.qml b/doc/src/snippets/declarative/grid/grid-no-spacing.qml index 6318165..a6ca305 100644 --- a/doc/src/snippets/declarative/grid/grid-no-spacing.qml +++ b/doc/src/snippets/declarative/grid/grid-no-spacing.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 112; height: 112 diff --git a/doc/src/snippets/declarative/grid/grid-spacing.qml b/doc/src/snippets/declarative/grid/grid-spacing.qml index fb3822c..c03cdad 100644 --- a/doc/src/snippets/declarative/grid/grid-spacing.qml +++ b/doc/src/snippets/declarative/grid/grid-spacing.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 112; height: 112 diff --git a/doc/src/snippets/declarative/grid/grid.qml b/doc/src/snippets/declarative/grid/grid.qml index 4599806..837ae60 100644 --- a/doc/src/snippets/declarative/grid/grid.qml +++ b/doc/src/snippets/declarative/grid/grid.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Grid { columns: 3 diff --git a/doc/src/snippets/declarative/gridview/ContactModel.qml b/doc/src/snippets/declarative/gridview/ContactModel.qml index 9fdeb4a..c3c3962 100644 --- a/doc/src/snippets/declarative/gridview/ContactModel.qml +++ b/doc/src/snippets/declarative/gridview/ContactModel.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 ListModel { diff --git a/doc/src/snippets/declarative/gridview/gridview.qml b/doc/src/snippets/declarative/gridview/gridview.qml index cbebb0a..73e58ec 100644 --- a/doc/src/snippets/declarative/gridview/gridview.qml +++ b/doc/src/snippets/declarative/gridview/gridview.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![import] -import Qt 4.7 +import QtQuick 1.0 //![import] Rectangle { diff --git a/doc/src/snippets/declarative/image.qml b/doc/src/snippets/declarative/image.qml index 228e83a..4c66ec1 100644 --- a/doc/src/snippets/declarative/image.qml +++ b/doc/src/snippets/declarative/image.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Image { source: "pics/qtlogo.png" diff --git a/doc/src/snippets/declarative/listmodel-modify.qml b/doc/src/snippets/declarative/listmodel-modify.qml index f08137f..d85da6c 100644 --- a/doc/src/snippets/declarative/listmodel-modify.qml +++ b/doc/src/snippets/declarative/listmodel-modify.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/listmodel-nested.qml b/doc/src/snippets/declarative/listmodel-nested.qml index c38ee2d..36c5d66 100644 --- a/doc/src/snippets/declarative/listmodel-nested.qml +++ b/doc/src/snippets/declarative/listmodel-nested.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/listmodel-simple.qml b/doc/src/snippets/declarative/listmodel-simple.qml index e561284..c8e83eb 100644 --- a/doc/src/snippets/declarative/listmodel-simple.qml +++ b/doc/src/snippets/declarative/listmodel-simple.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/listmodel.qml b/doc/src/snippets/declarative/listmodel.qml index 20f2074..f5b6cd6 100644 --- a/doc/src/snippets/declarative/listmodel.qml +++ b/doc/src/snippets/declarative/listmodel.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 ListModel { id: fruitModel diff --git a/doc/src/snippets/declarative/listview/ContactModel.qml b/doc/src/snippets/declarative/listview/ContactModel.qml index f48f84f..d421ffc 100644 --- a/doc/src/snippets/declarative/listview/ContactModel.qml +++ b/doc/src/snippets/declarative/listview/ContactModel.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { diff --git a/doc/src/snippets/declarative/listview/listview-snippet.qml b/doc/src/snippets/declarative/listview/listview-snippet.qml index d81bcbb..f2a260d 100644 --- a/doc/src/snippets/declarative/listview/listview-snippet.qml +++ b/doc/src/snippets/declarative/listview/listview-snippet.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 ListView { width: 50; height: 200 diff --git a/doc/src/snippets/declarative/listview/listview.qml b/doc/src/snippets/declarative/listview/listview.qml index 2945b2f..8ba47a8 100644 --- a/doc/src/snippets/declarative/listview/listview.qml +++ b/doc/src/snippets/declarative/listview/listview.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![import] -import Qt 4.7 +import QtQuick 1.0 //![import] Item { diff --git a/doc/src/snippets/declarative/loader/KeyReader.qml b/doc/src/snippets/declarative/loader/KeyReader.qml index 66a74fa..e53700c 100644 --- a/doc/src/snippets/declarative/loader/KeyReader.qml +++ b/doc/src/snippets/declarative/loader/KeyReader.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { Item { diff --git a/doc/src/snippets/declarative/loader/MyItem.qml b/doc/src/snippets/declarative/loader/MyItem.qml index 22c3fd3..199c64a 100644 --- a/doc/src/snippets/declarative/loader/MyItem.qml +++ b/doc/src/snippets/declarative/loader/MyItem.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myItem diff --git a/doc/src/snippets/declarative/loader/connections.qml b/doc/src/snippets/declarative/loader/connections.qml index a1cdce2..18f4259 100644 --- a/doc/src/snippets/declarative/loader/connections.qml +++ b/doc/src/snippets/declarative/loader/connections.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/loader/focus.qml b/doc/src/snippets/declarative/loader/focus.qml index 4b4c940..4b3042a 100644 --- a/doc/src/snippets/declarative/loader/focus.qml +++ b/doc/src/snippets/declarative/loader/focus.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/loader/simple.qml b/doc/src/snippets/declarative/loader/simple.qml index bb06ffc..556ce60 100644 --- a/doc/src/snippets/declarative/loader/simple.qml +++ b/doc/src/snippets/declarative/loader/simple.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 200 diff --git a/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml b/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml index 85071f1..e2a4ee9 100644 --- a/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml +++ b/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/mousearea/mousearea.qml b/doc/src/snippets/declarative/mousearea/mousearea.qml index e7764f9..7cd0a77 100644 --- a/doc/src/snippets/declarative/mousearea/mousearea.qml +++ b/doc/src/snippets/declarative/mousearea/mousearea.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [import] -import Qt 4.7 +import QtQuick 1.0 //! [import] Rectangle { diff --git a/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml b/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml index fa0682e..8f9fd47 100644 --- a/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml +++ b/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [dragfilter] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 480 diff --git a/doc/src/snippets/declarative/numberanimation.qml b/doc/src/snippets/declarative/numberanimation.qml index 19c0b0d..8f64493 100644 --- a/doc/src/snippets/declarative/numberanimation.qml +++ b/doc/src/snippets/declarative/numberanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/doc/src/snippets/declarative/parallelanimation.qml b/doc/src/snippets/declarative/parallelanimation.qml index caf4e01..0badc03 100644 --- a/doc/src/snippets/declarative/parallelanimation.qml +++ b/doc/src/snippets/declarative/parallelanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/parentanimation.qml b/doc/src/snippets/declarative/parentanimation.qml index b8a4c00..fa49d7a 100644 --- a/doc/src/snippets/declarative/parentanimation.qml +++ b/doc/src/snippets/declarative/parentanimation.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 100 diff --git a/doc/src/snippets/declarative/parentchange.qml b/doc/src/snippets/declarative/parentchange.qml index 72932b2..e73bbb3 100644 --- a/doc/src/snippets/declarative/parentchange.qml +++ b/doc/src/snippets/declarative/parentchange.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 100 diff --git a/doc/src/snippets/declarative/pathview/ContactModel.qml b/doc/src/snippets/declarative/pathview/ContactModel.qml index 62daf3d..07db8dc 100644 --- a/doc/src/snippets/declarative/pathview/ContactModel.qml +++ b/doc/src/snippets/declarative/pathview/ContactModel.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { diff --git a/doc/src/snippets/declarative/pathview/pathattributes.qml b/doc/src/snippets/declarative/pathview/pathattributes.qml index a45f15a..d6dacdb 100644 --- a/doc/src/snippets/declarative/pathview/pathattributes.qml +++ b/doc/src/snippets/declarative/pathview/pathattributes.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240; height: 200 diff --git a/doc/src/snippets/declarative/pathview/pathview.qml b/doc/src/snippets/declarative/pathview/pathview.qml index e03c615..93298c4 100644 --- a/doc/src/snippets/declarative/pathview/pathview.qml +++ b/doc/src/snippets/declarative/pathview/pathview.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240; height: 200 diff --git a/doc/src/snippets/declarative/propertyaction.qml b/doc/src/snippets/declarative/propertyaction.qml index 696c9ef..acb5c43 100644 --- a/doc/src/snippets/declarative/propertyaction.qml +++ b/doc/src/snippets/declarative/propertyaction.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Row { diff --git a/doc/src/snippets/declarative/propertyanimation.qml b/doc/src/snippets/declarative/propertyanimation.qml index 24efd60..1f1cbaf 100644 --- a/doc/src/snippets/declarative/propertyanimation.qml +++ b/doc/src/snippets/declarative/propertyanimation.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Row { diff --git a/doc/src/snippets/declarative/propertychanges.qml b/doc/src/snippets/declarative/propertychanges.qml index 06a3fae..00f6bfe 100644 --- a/doc/src/snippets/declarative/propertychanges.qml +++ b/doc/src/snippets/declarative/propertychanges.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![import] -import Qt 4.7 +import QtQuick 1.0 //![import] Column { diff --git a/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml index 48f2bdb..4aa318c 100644 --- a/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml +++ b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 250 diff --git a/doc/src/snippets/declarative/qml-data-models/listelements.qml b/doc/src/snippets/declarative/qml-data-models/listelements.qml index 2d12567..44fb056 100644 --- a/doc/src/snippets/declarative/qml-data-models/listelements.qml +++ b/doc/src/snippets/declarative/qml-data-models/listelements.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 250 diff --git a/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml index 69533c9..53f844a 100644 --- a/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml +++ b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 250 diff --git a/doc/src/snippets/declarative/qml-documents/inline-component.qml b/doc/src/snippets/declarative/qml-documents/inline-component.qml index 45d7eb4..eef68a3 100644 --- a/doc/src/snippets/declarative/qml-documents/inline-component.qml +++ b/doc/src/snippets/declarative/qml-documents/inline-component.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240; height: 320; diff --git a/doc/src/snippets/declarative/qml-documents/inline-text-component.qml b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml index 1f3af33..593862d 100644 --- a/doc/src/snippets/declarative/qml-documents/inline-text-component.qml +++ b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240; height: 320; diff --git a/doc/src/snippets/declarative/qml-documents/non-trivial.qml b/doc/src/snippets/declarative/qml-documents/non-trivial.qml index e9cba98..ba567b5 100644 --- a/doc/src/snippets/declarative/qml-documents/non-trivial.qml +++ b/doc/src/snippets/declarative/qml-documents/non-trivial.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240; height: 320; diff --git a/doc/src/snippets/declarative/qml-documents/qmldocuments.qml b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml index a4b5589..20efc35 100644 --- a/doc/src/snippets/declarative/qml-documents/qmldocuments.qml +++ b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { property alias text: textItem.text diff --git a/doc/src/snippets/declarative/qml-intro/anchors1.qml b/doc/src/snippets/declarative/qml-intro/anchors1.qml index ba6f928..077eab2 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors1.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myWin diff --git a/doc/src/snippets/declarative/qml-intro/anchors2.qml b/doc/src/snippets/declarative/qml-intro/anchors2.qml index ac60e1b..79f180d 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors2.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors2.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myWin diff --git a/doc/src/snippets/declarative/qml-intro/anchors3.qml b/doc/src/snippets/declarative/qml-intro/anchors3.qml index ab74670..db42e6b 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors3.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors3.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myWin diff --git a/doc/src/snippets/declarative/qml-intro/hello-world1.qml b/doc/src/snippets/declarative/qml-intro/hello-world1.qml index 55b39c6..176f4f4 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world1.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/doc/src/snippets/declarative/qml-intro/hello-world2.qml b/doc/src/snippets/declarative/qml-intro/hello-world2.qml index c537528..98f04ec 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world2.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world2.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/doc/src/snippets/declarative/qml-intro/hello-world3.qml b/doc/src/snippets/declarative/qml-intro/hello-world3.qml index 794c406..abf684c 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world3.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world3.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/doc/src/snippets/declarative/qml-intro/hello-world4.qml b/doc/src/snippets/declarative/qml-intro/hello-world4.qml index 7ea4bed..de794ca 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world4.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world4.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/doc/src/snippets/declarative/qml-intro/hello-world5.qml b/doc/src/snippets/declarative/qml-intro/hello-world5.qml index 3345882..95ec6c8 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world5.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world5.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/doc/src/snippets/declarative/qml-intro/number-animation1.qml b/doc/src/snippets/declarative/qml-intro/number-animation1.qml index 64ebe7a..aa5c109 100644 --- a/doc/src/snippets/declarative/qml-intro/number-animation1.qml +++ b/doc/src/snippets/declarative/qml-intro/number-animation1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRec diff --git a/doc/src/snippets/declarative/qml-intro/number-animation2.qml b/doc/src/snippets/declarative/qml-intro/number-animation2.qml index 7905002..9c6a4bc 100644 --- a/doc/src/snippets/declarative/qml-intro/number-animation2.qml +++ b/doc/src/snippets/declarative/qml-intro/number-animation2.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRec diff --git a/doc/src/snippets/declarative/qml-intro/rectangle.qml b/doc/src/snippets/declarative/qml-intro/rectangle.qml index 1ce0a04..ccfa514 100644 --- a/doc/src/snippets/declarative/qml-intro/rectangle.qml +++ b/doc/src/snippets/declarative/qml-intro/rectangle.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 // This is a comment. And below myRectangle is defined. Rectangle { diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml index a1a1af9..3ff1905 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRec diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml index f83c224..47c8d6a 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRec diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml index 32bf59c..530907a 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml @@ -38,10 +38,10 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRec diff --git a/doc/src/snippets/declarative/qml-intro/states1.qml b/doc/src/snippets/declarative/qml-intro/states1.qml index 6e7bab1..e63551a 100644 --- a/doc/src/snippets/declarative/qml-intro/states1.qml +++ b/doc/src/snippets/declarative/qml-intro/states1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainRectangle diff --git a/doc/src/snippets/declarative/qml-intro/transformations1.qml b/doc/src/snippets/declarative/qml-intro/transformations1.qml index 7ca3aee..2fea733 100644 --- a/doc/src/snippets/declarative/qml-intro/transformations1.qml +++ b/doc/src/snippets/declarative/qml-intro/transformations1.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myWin diff --git a/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml b/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml index 341765a..425346d 100644 --- a/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml +++ b/doc/src/snippets/declarative/qtbinding/contextproperties/main.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300 diff --git a/doc/src/snippets/declarative/qtbinding/custompalette/main.qml b/doc/src/snippets/declarative/qtbinding/custompalette/main.qml index ea8464c..a20d9e0 100644 --- a/doc/src/snippets/declarative/qtbinding/custompalette/main.qml +++ b/doc/src/snippets/declarative/qtbinding/custompalette/main.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/doc/src/snippets/declarative/qtbinding/resources/main.qml b/doc/src/snippets/declarative/qtbinding/resources/main.qml index b12af9e..644d963 100644 --- a/doc/src/snippets/declarative/qtbinding/resources/main.qml +++ b/doc/src/snippets/declarative/qtbinding/resources/main.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Image { source: "images/background.png" diff --git a/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml b/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml index 75c0831..f894f71 100644 --- a/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml +++ b/doc/src/snippets/declarative/qtbinding/stopwatch/main.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300 diff --git a/doc/src/snippets/declarative/qtobject.qml b/doc/src/snippets/declarative/qtobject.qml index 581af16..e6e98c2 100644 --- a/doc/src/snippets/declarative/qtobject.qml +++ b/doc/src/snippets/declarative/qtobject.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { QtObject { diff --git a/doc/src/snippets/declarative/rectangle/rect-border-width.qml b/doc/src/snippets/declarative/rectangle/rect-border-width.qml index 3cf0831..3b2a4e5 100644 --- a/doc/src/snippets/declarative/rectangle/rect-border-width.qml +++ b/doc/src/snippets/declarative/rectangle/rect-border-width.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/doc/src/snippets/declarative/rectangle/rectangle-colors.qml b/doc/src/snippets/declarative/rectangle/rectangle-colors.qml index 8f306f6..df364bc 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-colors.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-colors.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { width: 100; height: 200 diff --git a/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml b/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml index aff5849..d727e84 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { width: 100; height: 300 diff --git a/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml b/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml index e1d6980..4cb1050 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 200 diff --git a/doc/src/snippets/declarative/rectangle/rectangle.qml b/doc/src/snippets/declarative/rectangle/rectangle.qml index a464cb9..7bb7c58 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100 diff --git a/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml index dbf24ae..4835cfe 100644 --- a/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml +++ b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400; color: "black" diff --git a/doc/src/snippets/declarative/repeaters/repeater.qml b/doc/src/snippets/declarative/repeaters/repeater.qml index db606d0..f3a5505 100644 --- a/doc/src/snippets/declarative/repeaters/repeater.qml +++ b/doc/src/snippets/declarative/repeaters/repeater.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [import] -import Qt 4.7 +import QtQuick 1.0 //! [import] Row { diff --git a/doc/src/snippets/declarative/rotation.qml b/doc/src/snippets/declarative/rotation.qml index 4db8b4a..7366775 100644 --- a/doc/src/snippets/declarative/rotation.qml +++ b/doc/src/snippets/declarative/rotation.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //! [0] -import Qt 4.7 +import QtQuick 1.0 Row { x: 10; y: 10 diff --git a/doc/src/snippets/declarative/rotationanimation.qml b/doc/src/snippets/declarative/rotationanimation.qml index 2309d0a..c907287 100644 --- a/doc/src/snippets/declarative/rotationanimation.qml +++ b/doc/src/snippets/declarative/rotationanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 300 diff --git a/doc/src/snippets/declarative/row.qml b/doc/src/snippets/declarative/row.qml index efb6190..4e4bdd3 100644 --- a/doc/src/snippets/declarative/row.qml +++ b/doc/src/snippets/declarative/row.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 320; height: 110 diff --git a/doc/src/snippets/declarative/row/row.qml b/doc/src/snippets/declarative/row/row.qml index 8096c0f..b19bdc2 100644 --- a/doc/src/snippets/declarative/row/row.qml +++ b/doc/src/snippets/declarative/row/row.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [document] -import Qt 4.7 +import QtQuick 1.0 Row { spacing: 2 diff --git a/doc/src/snippets/declarative/sequentialanimation.qml b/doc/src/snippets/declarative/sequentialanimation.qml index 1a17ae9..c8788ac 100644 --- a/doc/src/snippets/declarative/sequentialanimation.qml +++ b/doc/src/snippets/declarative/sequentialanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/smoothedanimation.qml b/doc/src/snippets/declarative/smoothedanimation.qml index edc33db..06e1555 100644 --- a/doc/src/snippets/declarative/smoothedanimation.qml +++ b/doc/src/snippets/declarative/smoothedanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 600 diff --git a/doc/src/snippets/declarative/springanimation.qml b/doc/src/snippets/declarative/springanimation.qml index fe5aeb8..2051dbe 100644 --- a/doc/src/snippets/declarative/springanimation.qml +++ b/doc/src/snippets/declarative/springanimation.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 300 diff --git a/doc/src/snippets/declarative/state-when.qml b/doc/src/snippets/declarative/state-when.qml index 6dbd099..583f3ba 100644 --- a/doc/src/snippets/declarative/state-when.qml +++ b/doc/src/snippets/declarative/state-when.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { id: myRect diff --git a/doc/src/snippets/declarative/state.qml b/doc/src/snippets/declarative/state.qml index 8597314..07fd21b 100644 --- a/doc/src/snippets/declarative/state.qml +++ b/doc/src/snippets/declarative/state.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRect diff --git a/doc/src/snippets/declarative/states.qml b/doc/src/snippets/declarative/states.qml index be483af..ee110aa 100644 --- a/doc/src/snippets/declarative/states.qml +++ b/doc/src/snippets/declarative/states.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRect diff --git a/doc/src/snippets/declarative/systempalette.qml b/doc/src/snippets/declarative/systempalette.qml index 5e540b9..53410a1 100644 --- a/doc/src/snippets/declarative/systempalette.qml +++ b/doc/src/snippets/declarative/systempalette.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { SystemPalette { id: myPalette; colorGroup: SystemPalette.Active } diff --git a/doc/src/snippets/declarative/text/onLinkActivated.qml b/doc/src/snippets/declarative/text/onLinkActivated.qml index 0fb236a..e9fd431 100644 --- a/doc/src/snippets/declarative/text/onLinkActivated.qml +++ b/doc/src/snippets/declarative/text/onLinkActivated.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 700; height: 400 diff --git a/doc/src/snippets/declarative/texteditor.qml b/doc/src/snippets/declarative/texteditor.qml index 55438f4..5596140 100644 --- a/doc/src/snippets/declarative/texteditor.qml +++ b/doc/src/snippets/declarative/texteditor.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Flickable { diff --git a/doc/src/snippets/declarative/transition-from-to.qml b/doc/src/snippets/declarative/transition-from-to.qml index 73bf880..4fe39c5 100644 --- a/doc/src/snippets/declarative/transition-from-to.qml +++ b/doc/src/snippets/declarative/transition-from-to.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/doc/src/snippets/declarative/transition-reversible.qml b/doc/src/snippets/declarative/transition-reversible.qml index b64cf37..e3fec2f 100644 --- a/doc/src/snippets/declarative/transition-reversible.qml +++ b/doc/src/snippets/declarative/transition-reversible.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/doc/src/snippets/declarative/transition.qml b/doc/src/snippets/declarative/transition.qml index 6a8a2f5..9154c3c 100644 --- a/doc/src/snippets/declarative/transition.qml +++ b/doc/src/snippets/declarative/transition.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: rect diff --git a/doc/src/snippets/declarative/visualdatamodel.qml b/doc/src/snippets/declarative/visualdatamodel.qml index 67f9b6b..e9ad800 100644 --- a/doc/src/snippets/declarative/visualdatamodel.qml +++ b/doc/src/snippets/declarative/visualdatamodel.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 100 diff --git a/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml b/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml index 10bcfe8..bceaac8 100644 --- a/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml +++ b/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 ListView { id: view diff --git a/doc/src/snippets/declarative/workerscript.qml b/doc/src/snippets/declarative/workerscript.qml index 434a90e..95e787c 100644 --- a/doc/src/snippets/declarative/workerscript.qml +++ b/doc/src/snippets/declarative/workerscript.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300 diff --git a/doc/src/snippets/declarative/xmlrole.qml b/doc/src/snippets/declarative/xmlrole.qml index 9c8af89..efa59eb 100644 --- a/doc/src/snippets/declarative/xmlrole.qml +++ b/doc/src/snippets/declarative/xmlrole.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 200 diff --git a/examples/declarative/animation/basics/color-animation.qml b/examples/declarative/animation/basics/color-animation.qml index 182bb54..809f391 100644 --- a/examples/declarative/animation/basics/color-animation.qml +++ b/examples/declarative/animation/basics/color-animation.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/examples/declarative/animation/basics/property-animation.qml b/examples/declarative/animation/basics/property-animation.qml index 5149f5b..0a5b353 100644 --- a/examples/declarative/animation/basics/property-animation.qml +++ b/examples/declarative/animation/basics/property-animation.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: window diff --git a/examples/declarative/animation/behaviors/SideRect.qml b/examples/declarative/animation/behaviors/SideRect.qml index eba0817..9517421 100644 --- a/examples/declarative/animation/behaviors/SideRect.qml +++ b/examples/declarative/animation/behaviors/SideRect.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRect diff --git a/examples/declarative/animation/behaviors/behavior-example.qml b/examples/declarative/animation/behaviors/behavior-example.qml index 268d6e5..3e050ab 100644 --- a/examples/declarative/animation/behaviors/behavior-example.qml +++ b/examples/declarative/animation/behaviors/behavior-example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 600; height: 400 diff --git a/examples/declarative/animation/easing/content/QuitButton.qml b/examples/declarative/animation/easing/content/QuitButton.qml index 9dfe9bd..cbbf916 100644 --- a/examples/declarative/animation/easing/content/QuitButton.qml +++ b/examples/declarative/animation/easing/content/QuitButton.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { source: "quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 @@ -49,4 +49,4 @@ Image { anchors.margins: -10 onClicked: Qt.quit() } -} \ No newline at end of file +} diff --git a/examples/declarative/animation/easing/easing.qml b/examples/declarative/animation/easing/easing.qml index 9349a25..fd974d9 100644 --- a/examples/declarative/animation/easing/easing.qml +++ b/examples/declarative/animation/easing/easing.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/animation/states/states.qml b/examples/declarative/animation/states/states.qml index 4f3e28c..a9046eb 100644 --- a/examples/declarative/animation/states/states.qml +++ b/examples/declarative/animation/states/states.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/animation/states/transitions.qml b/examples/declarative/animation/states/transitions.qml index 6efcdba..ea73b82 100644 --- a/examples/declarative/animation/states/transitions.qml +++ b/examples/declarative/animation/states/transitions.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 /* This is exactly the same as states.qml, except that we have appended diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml index 58536bf..eda9a43 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml +++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "ImageProviderCore" // import the plugin that registers the color image provider //![0] diff --git a/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml b/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml index 439740a..07c2f5a 100644 --- a/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml +++ b/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { width: 100 diff --git a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml index c7d2757..f416c8b 100644 --- a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml +++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: clock diff --git a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml index 571e427..5f442af 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 LayoutItem { //Sized by the layout id: resizable diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml index fd3aa03..5a83937 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import GridLayouts 4.7 Item { diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml index 24992d5..becbbfa 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import LinearLayouts 4.7 Item { diff --git a/examples/declarative/cppextensions/qwidgets/qwidgets.qml b/examples/declarative/cppextensions/qwidgets/qwidgets.qml index 16e9227..6ad937b 100644 --- a/examples/declarative/cppextensions/qwidgets/qwidgets.qml +++ b/examples/declarative/cppextensions/qwidgets/qwidgets.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "QWidgets" 1.0 Rectangle { diff --git a/examples/declarative/cppextensions/referenceexamples/methods/example.qml b/examples/declarative/cppextensions/referenceexamples/methods/example.qml index ea3fa5f..f3616c7 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/methods/example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import People 1.0 // ![0] diff --git a/examples/declarative/i18n/i18n.qml b/examples/declarative/i18n/i18n.qml index fcf24c2..8dac88d 100644 --- a/examples/declarative/i18n/i18n.qml +++ b/examples/declarative/i18n/i18n.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 // // The QML runtime automatically loads a translation from the i18n subdirectory of the root diff --git a/examples/declarative/imageelements/borderimage/borderimage.qml b/examples/declarative/imageelements/borderimage/borderimage.qml index bbe113c..53e35f9 100644 --- a/examples/declarative/imageelements/borderimage/borderimage.qml +++ b/examples/declarative/imageelements/borderimage/borderimage.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml index b8f8a70..96495cb 100644 --- a/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml +++ b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml index 73eb040..839ecf1 100644 --- a/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml +++ b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { property alias color : rectangle.color diff --git a/examples/declarative/imageelements/borderimage/shadows.qml b/examples/declarative/imageelements/borderimage/shadows.qml index 4cb7c65..d547f63 100644 --- a/examples/declarative/imageelements/borderimage/shadows.qml +++ b/examples/declarative/imageelements/borderimage/shadows.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/imageelements/image/ImageCell.qml b/examples/declarative/imageelements/image/ImageCell.qml index f8973c8..e8a6c55 100644 --- a/examples/declarative/imageelements/image/ImageCell.qml +++ b/examples/declarative/imageelements/image/ImageCell.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { property alias mode: image.fillMode diff --git a/examples/declarative/imageelements/image/image.qml b/examples/declarative/imageelements/image/image.qml index 719d544..f00fc18 100644 --- a/examples/declarative/imageelements/image/image.qml +++ b/examples/declarative/imageelements/image/image.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 490 diff --git a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml index be32386..79273ad 100644 --- a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { id: container diff --git a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml index 8cdec3e..263adad 100644 --- a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { property alias interactive: gridView.interactive diff --git a/examples/declarative/keyinteraction/focus/Core/ListMenu.qml b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml index ca2e206..cefc9a3 100644 --- a/examples/declarative/keyinteraction/focus/Core/ListMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { clip: true diff --git a/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml index 95164f8..7b63cd8 100644 --- a/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml +++ b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: container diff --git a/examples/declarative/keyinteraction/focus/focus.qml b/examples/declarative/keyinteraction/focus/focus.qml index da2c30d..e2115d8 100644 --- a/examples/declarative/keyinteraction/focus/focus.qml +++ b/examples/declarative/keyinteraction/focus/focus.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "Core" Rectangle { diff --git a/examples/declarative/modelviews/abstractitemmodel/view.qml b/examples/declarative/modelviews/abstractitemmodel/view.qml index 2fb4885..d1ab302 100644 --- a/examples/declarative/modelviews/abstractitemmodel/view.qml +++ b/examples/declarative/modelviews/abstractitemmodel/view.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] ListView { diff --git a/examples/declarative/modelviews/gridview/gridview-example.qml b/examples/declarative/modelviews/gridview/gridview-example.qml index aea34ff..85fefda 100644 --- a/examples/declarative/modelviews/gridview/gridview-example.qml +++ b/examples/declarative/modelviews/gridview/gridview-example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 400 diff --git a/examples/declarative/modelviews/listview/content/PetsModel.qml b/examples/declarative/modelviews/listview/content/PetsModel.qml index beeed1a..5220763 100644 --- a/examples/declarative/modelviews/listview/content/PetsModel.qml +++ b/examples/declarative/modelviews/listview/content/PetsModel.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { diff --git a/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml b/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml index ad6230e..d6808a4 100644 --- a/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml +++ b/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: container diff --git a/examples/declarative/modelviews/listview/content/RecipesModel.qml b/examples/declarative/modelviews/listview/content/RecipesModel.qml index 812cf77..6056b90 100644 --- a/examples/declarative/modelviews/listview/content/RecipesModel.qml +++ b/examples/declarative/modelviews/listview/content/RecipesModel.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { diff --git a/examples/declarative/modelviews/listview/content/TextButton.qml b/examples/declarative/modelviews/listview/content/TextButton.qml index 0270fdc..f26d775 100644 --- a/examples/declarative/modelviews/listview/content/TextButton.qml +++ b/examples/declarative/modelviews/listview/content/TextButton.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/modelviews/listview/dynamiclist.qml b/examples/declarative/modelviews/listview/dynamiclist.qml index 27ef6e0..f25f0fa 100644 --- a/examples/declarative/modelviews/listview/dynamiclist.qml +++ b/examples/declarative/modelviews/listview/dynamiclist.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" // This example shows how items can be dynamically added to and removed from diff --git a/examples/declarative/modelviews/listview/expandingdelegates.qml b/examples/declarative/modelviews/listview/expandingdelegates.qml index 2dec769..bd3d3a9 100644 --- a/examples/declarative/modelviews/listview/expandingdelegates.qml +++ b/examples/declarative/modelviews/listview/expandingdelegates.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" // This example illustrates expanding a list item to show a more detailed view. diff --git a/examples/declarative/modelviews/listview/highlight.qml b/examples/declarative/modelviews/listview/highlight.qml index 5646e9f..249c73b 100644 --- a/examples/declarative/modelviews/listview/highlight.qml +++ b/examples/declarative/modelviews/listview/highlight.qml @@ -42,7 +42,7 @@ // that uses a SpringAnimation to provide custom movement when the // highlight bar is moved between items. -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/modelviews/listview/highlightranges.qml b/examples/declarative/modelviews/listview/highlightranges.qml index 711463a..2716ee5 100644 --- a/examples/declarative/modelviews/listview/highlightranges.qml +++ b/examples/declarative/modelviews/listview/highlightranges.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/modelviews/listview/sections.qml b/examples/declarative/modelviews/listview/sections.qml index a9ec538..3248899 100644 --- a/examples/declarative/modelviews/listview/sections.qml +++ b/examples/declarative/modelviews/listview/sections.qml @@ -41,7 +41,7 @@ // This example shows how a ListView can be separated into sections using // the ListView.section attached property. -import Qt 4.7 +import QtQuick 1.0 //! [0] Rectangle { diff --git a/examples/declarative/modelviews/objectlistmodel/view.qml b/examples/declarative/modelviews/objectlistmodel/view.qml index 7e7c68a..fd9d149 100644 --- a/examples/declarative/modelviews/objectlistmodel/view.qml +++ b/examples/declarative/modelviews/objectlistmodel/view.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] ListView { diff --git a/examples/declarative/modelviews/package/Delegate.qml b/examples/declarative/modelviews/package/Delegate.qml index a38727c..57048f4 100644 --- a/examples/declarative/modelviews/package/Delegate.qml +++ b/examples/declarative/modelviews/package/Delegate.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Package { diff --git a/examples/declarative/modelviews/package/view.qml b/examples/declarative/modelviews/package/view.qml index 38cc047..cbe8f06 100644 --- a/examples/declarative/modelviews/package/view.qml +++ b/examples/declarative/modelviews/package/view.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/examples/declarative/modelviews/parallax/parallax.qml b/examples/declarative/modelviews/parallax/parallax.qml index 3d7d091..0d07522 100644 --- a/examples/declarative/modelviews/parallax/parallax.qml +++ b/examples/declarative/modelviews/parallax/parallax.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "../../toys/clocks/content" // for loading the Clock element import "qml" diff --git a/examples/declarative/modelviews/parallax/qml/ParallaxView.qml b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml index 724d7e0..96e3db9 100644 --- a/examples/declarative/modelviews/parallax/qml/ParallaxView.qml +++ b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/examples/declarative/modelviews/parallax/qml/Smiley.qml b/examples/declarative/modelviews/parallax/qml/Smiley.qml index 959c85c..cac0a17 100644 --- a/examples/declarative/modelviews/parallax/qml/Smiley.qml +++ b/examples/declarative/modelviews/parallax/qml/Smiley.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 // This is taken from the declarative animation/basics/property-animation.qml // example diff --git a/examples/declarative/modelviews/pathview/pathview-example.qml b/examples/declarative/modelviews/pathview/pathview-example.qml index 8777291..baf7575 100644 --- a/examples/declarative/modelviews/pathview/pathview-example.qml +++ b/examples/declarative/modelviews/pathview/pathview-example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 240 diff --git a/examples/declarative/modelviews/stringlistmodel/view.qml b/examples/declarative/modelviews/stringlistmodel/view.qml index 1751a7a..0a90ee6 100644 --- a/examples/declarative/modelviews/stringlistmodel/view.qml +++ b/examples/declarative/modelviews/stringlistmodel/view.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] ListView { diff --git a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml index 344ce62..15f2f11 100644 --- a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml +++ b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml @@ -41,7 +41,7 @@ // This example demonstrates placing items in a view using // a VisualItemModel -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightgray" diff --git a/examples/declarative/modelviews/webview/alerts.qml b/examples/declarative/modelviews/webview/alerts.qml index 68f7a5c..4aa4a3b 100644 --- a/examples/declarative/modelviews/webview/alerts.qml +++ b/examples/declarative/modelviews/webview/alerts.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/examples/declarative/modelviews/webview/autosize.qml b/examples/declarative/modelviews/webview/autosize.qml index 91550c1..7e10403 100644 --- a/examples/declarative/modelviews/webview/autosize.qml +++ b/examples/declarative/modelviews/webview/autosize.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 // The WebView size is determined by the width, height, diff --git a/examples/declarative/modelviews/webview/content/Mapping/Map.qml b/examples/declarative/modelviews/webview/content/Mapping/Map.qml index ab549b5..9a86579 100644 --- a/examples/declarative/modelviews/webview/content/Mapping/Map.qml +++ b/examples/declarative/modelviews/webview/content/Mapping/Map.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 Item { diff --git a/examples/declarative/modelviews/webview/googlemaps.qml b/examples/declarative/modelviews/webview/googlemaps.qml index bc9a0e3..aed0ddd 100644 --- a/examples/declarative/modelviews/webview/googlemaps.qml +++ b/examples/declarative/modelviews/webview/googlemaps.qml @@ -45,7 +45,7 @@ // API, but users from QML don't need to understand the implementation in // order to create a Map. -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 import "content/Mapping" diff --git a/examples/declarative/modelviews/webview/inlinehtml.qml b/examples/declarative/modelviews/webview/inlinehtml.qml index afc8418..afc1fa9 100644 --- a/examples/declarative/modelviews/webview/inlinehtml.qml +++ b/examples/declarative/modelviews/webview/inlinehtml.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 // Inline HTML with loose formatting can be diff --git a/examples/declarative/modelviews/webview/newwindows.qml b/examples/declarative/modelviews/webview/newwindows.qml index 5762321..52f7a0b 100644 --- a/examples/declarative/modelviews/webview/newwindows.qml +++ b/examples/declarative/modelviews/webview/newwindows.qml @@ -43,7 +43,7 @@ // Note that to open windows from JavaScript, you will need to // allow it on WebView with settings.javascriptCanOpenWindows: true -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 Grid { diff --git a/examples/declarative/positioners/Button.qml b/examples/declarative/positioners/Button.qml index 4709aa6..32e5993 100644 --- a/examples/declarative/positioners/Button.qml +++ b/examples/declarative/positioners/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/positioners/positioners.qml b/examples/declarative/positioners/positioners.qml index 26b9ccd..6ae265e 100644 --- a/examples/declarative/positioners/positioners.qml +++ b/examples/declarative/positioners/positioners.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/screenorientation/Core/Bubble.qml b/examples/declarative/screenorientation/Core/Bubble.qml index 58bd13c..dea1e19 100644 --- a/examples/declarative/screenorientation/Core/Bubble.qml +++ b/examples/declarative/screenorientation/Core/Bubble.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property bool rising: false @@ -88,4 +88,4 @@ Rectangle { } } } -} \ No newline at end of file +} diff --git a/examples/declarative/screenorientation/Core/Button.qml b/examples/declarative/screenorientation/Core/Button.qml index 11117c9..bc73118 100644 --- a/examples/declarative/screenorientation/Core/Button.qml +++ b/examples/declarative/screenorientation/Core/Button.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: button signal clicked diff --git a/examples/declarative/screenorientation/screenorientation.qml b/examples/declarative/screenorientation/screenorientation.qml index 4387266..6c3f929 100644 --- a/examples/declarative/screenorientation/screenorientation.qml +++ b/examples/declarative/screenorientation/screenorientation.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "Core" import "Core/screenorientation.js" as ScreenOrientation diff --git a/examples/declarative/sqllocalstorage/hello.qml b/examples/declarative/sqllocalstorage/hello.qml index cbfc14a..5f9b9e0 100644 --- a/examples/declarative/sqllocalstorage/hello.qml +++ b/examples/declarative/sqllocalstorage/hello.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/examples/declarative/text/fonts/availableFonts.qml b/examples/declarative/text/fonts/availableFonts.qml index 312bc38..4966a41 100644 --- a/examples/declarative/text/fonts/availableFonts.qml +++ b/examples/declarative/text/fonts/availableFonts.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 480; height: 640; color: "steelblue" diff --git a/examples/declarative/text/fonts/banner.qml b/examples/declarative/text/fonts/banner.qml index 41bc997..d722468 100644 --- a/examples/declarative/text/fonts/banner.qml +++ b/examples/declarative/text/fonts/banner.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: screen diff --git a/examples/declarative/text/fonts/fonts.qml b/examples/declarative/text/fonts/fonts.qml index 743ee79..ae48f24 100644 --- a/examples/declarative/text/fonts/fonts.qml +++ b/examples/declarative/text/fonts/fonts.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property string myText: "The quick brown fox jumps over the lazy dog." diff --git a/examples/declarative/text/fonts/hello.qml b/examples/declarative/text/fonts/hello.qml index 60bd919..3aaf0fe 100644 --- a/examples/declarative/text/fonts/hello.qml +++ b/examples/declarative/text/fonts/hello.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: screen diff --git a/examples/declarative/text/textselection/textselection.qml b/examples/declarative/text/textselection/textselection.qml index aa958e6..f343be5 100644 --- a/examples/declarative/text/textselection/textselection.qml +++ b/examples/declarative/text/textselection/textselection.qml @@ -38,7 +38,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: editor diff --git a/examples/declarative/threading/threadedlistmodel/timedisplay.qml b/examples/declarative/threading/threadedlistmodel/timedisplay.qml index b1cce05..01411f4 100644 --- a/examples/declarative/threading/threadedlistmodel/timedisplay.qml +++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml @@ -39,7 +39,7 @@ ****************************************************************************/ // ![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/examples/declarative/threading/workerscript/workerscript.qml b/examples/declarative/threading/workerscript/workerscript.qml index e224bf1..2b03233 100644 --- a/examples/declarative/threading/workerscript/workerscript.qml +++ b/examples/declarative/threading/workerscript/workerscript.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 480; height: 320 diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures.qml b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml index 500a909..6a4cb3d 100644 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures.qml +++ b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.gestures 1.0 // Only works on platforms with Touch support. diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml index 492ffc6..8dacc05 100644 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml +++ b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: box diff --git a/examples/declarative/toys/clocks/clocks.qml b/examples/declarative/toys/clocks/clocks.qml index 9002fac..3354f11 100644 --- a/examples/declarative/toys/clocks/clocks.qml +++ b/examples/declarative/toys/clocks/clocks.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/toys/clocks/content/Clock.qml b/examples/declarative/toys/clocks/content/Clock.qml index 9c732f9..09e8393 100644 --- a/examples/declarative/toys/clocks/content/Clock.qml +++ b/examples/declarative/toys/clocks/content/Clock.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: clock diff --git a/examples/declarative/toys/clocks/content/QuitButton.qml b/examples/declarative/toys/clocks/content/QuitButton.qml index 9dfe9bd..cbbf916 100644 --- a/examples/declarative/toys/clocks/content/QuitButton.qml +++ b/examples/declarative/toys/clocks/content/QuitButton.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { source: "quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 @@ -49,4 +49,4 @@ Image { anchors.margins: -10 onClicked: Qt.quit() } -} \ No newline at end of file +} diff --git a/examples/declarative/toys/corkboards/Day.qml b/examples/declarative/toys/corkboards/Day.qml index 3525a5b..6afa12e 100644 --- a/examples/declarative/toys/corkboards/Day.qml +++ b/examples/declarative/toys/corkboards/Day.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Component { Item { diff --git a/examples/declarative/toys/corkboards/corkboards.qml b/examples/declarative/toys/corkboards/corkboards.qml index 9b764c9..14bc5f0 100644 --- a/examples/declarative/toys/corkboards/corkboards.qml +++ b/examples/declarative/toys/corkboards/corkboards.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 480 diff --git a/examples/declarative/toys/dynamicscene/dynamicscene.qml b/examples/declarative/toys/dynamicscene/dynamicscene.qml index ad18698..5f14e1d 100644 --- a/examples/declarative/toys/dynamicscene/dynamicscene.qml +++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 import "qml" @@ -188,7 +188,7 @@ Item { font.pixelSize: 14 wrapMode: TextEdit.WordWrap - text: "import Qt 4.7\nImage {\n id: smile\n x: 360 * Math.random()\n y: 180 * Math.random() \n source: 'images/face-smile.png'\n NumberAnimation on opacity { \n to: 0; duration: 1500\n }\n Component.onCompleted: smile.destroy(1500);\n}" + text: "import QtQuick 1.0\nImage {\n id: smile\n x: 360 * Math.random()\n y: 180 * Math.random() \n source: 'images/face-smile.png'\n NumberAnimation on opacity { \n to: 0; duration: 1500\n }\n Component.onCompleted: smile.destroy(1500);\n}" } } diff --git a/examples/declarative/toys/dynamicscene/qml/Button.qml b/examples/declarative/toys/dynamicscene/qml/Button.qml index 7bb0ddf..8da799e 100644 --- a/examples/declarative/toys/dynamicscene/qml/Button.qml +++ b/examples/declarative/toys/dynamicscene/qml/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml b/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml index fa976c1..7391412 100644 --- a/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { property bool created: false diff --git a/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml b/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml index 1c31f71..cf5395f 100644 --- a/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "itemCreation.js" as Code Image { diff --git a/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml b/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml index 9b6f243..6536df3 100644 --- a/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: rootItem diff --git a/examples/declarative/toys/dynamicscene/qml/Sun.qml b/examples/declarative/toys/dynamicscene/qml/Sun.qml index eb24285..5b28b39 100644 --- a/examples/declarative/toys/dynamicscene/qml/Sun.qml +++ b/examples/declarative/toys/dynamicscene/qml/Sun.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { id: sun diff --git a/examples/declarative/toys/tic-tac-toe/content/Button.qml b/examples/declarative/toys/tic-tac-toe/content/Button.qml index 2d30a03..403d587 100644 --- a/examples/declarative/toys/tic-tac-toe/content/Button.qml +++ b/examples/declarative/toys/tic-tac-toe/content/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/toys/tic-tac-toe/content/TicTac.qml b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml index 0ca5350..7e50736 100644 --- a/examples/declarative/toys/tic-tac-toe/content/TicTac.qml +++ b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { signal clicked diff --git a/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml index 12b0fda..4c1ad51 100644 --- a/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml +++ b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" import "content/tic-tac-toe.js" as Logic diff --git a/examples/declarative/toys/tvtennis/tvtennis.qml b/examples/declarative/toys/tvtennis/tvtennis.qml index 53c95c0..805666d 100644 --- a/examples/declarative/toys/tvtennis/tvtennis.qml +++ b/examples/declarative/toys/tvtennis/tvtennis.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/tutorials/extending/chapter1-basics/app.qml b/examples/declarative/tutorials/extending/chapter1-basics/app.qml index 826bea9..85bd779 100644 --- a/examples/declarative/tutorials/extending/chapter1-basics/app.qml +++ b/examples/declarative/tutorials/extending/chapter1-basics/app.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] import Charts 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/extending/chapter2-methods/app.qml b/examples/declarative/tutorials/extending/chapter2-methods/app.qml index 50051b6..185b830 100644 --- a/examples/declarative/tutorials/extending/chapter2-methods/app.qml +++ b/examples/declarative/tutorials/extending/chapter2-methods/app.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] import Charts 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml index e183b27..a4822d3 100644 --- a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml +++ b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] import Charts 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml index 6e5d3b4..80af476 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] import Charts 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml index 483332c..58b099f 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] import Charts 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/app.qml b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml index 097da7e..639da94 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/app.qml +++ b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml @@ -37,7 +37,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { width: 300; height: 200 diff --git a/examples/declarative/tutorials/helloworld/Cell.qml b/examples/declarative/tutorials/helloworld/Cell.qml index e64aa7e..76055ab 100644 --- a/examples/declarative/tutorials/helloworld/Cell.qml +++ b/examples/declarative/tutorials/helloworld/Cell.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 //![1] Item { diff --git a/examples/declarative/tutorials/helloworld/tutorial1.qml b/examples/declarative/tutorials/helloworld/tutorial1.qml index e6c4122..83b57b8 100644 --- a/examples/declarative/tutorials/helloworld/tutorial1.qml +++ b/examples/declarative/tutorials/helloworld/tutorial1.qml @@ -40,7 +40,7 @@ //![0] //![3] -import Qt 4.7 +import QtQuick 1.0 //![3] //![1] diff --git a/examples/declarative/tutorials/helloworld/tutorial2.qml b/examples/declarative/tutorials/helloworld/tutorial2.qml index 1ffde57..1bfab92 100644 --- a/examples/declarative/tutorials/helloworld/tutorial2.qml +++ b/examples/declarative/tutorials/helloworld/tutorial2.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/tutorials/helloworld/tutorial3.qml b/examples/declarative/tutorials/helloworld/tutorial3.qml index af2d5d2..cc06865 100644 --- a/examples/declarative/tutorials/helloworld/tutorial3.qml +++ b/examples/declarative/tutorials/helloworld/tutorial3.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/tutorials/samegame/samegame1/Block.qml b/examples/declarative/tutorials/samegame/samegame1/Block.qml index db1245d..b4c4399 100644 --- a/examples/declarative/tutorials/samegame/samegame1/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame1/Block.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: block diff --git a/examples/declarative/tutorials/samegame/samegame1/Button.qml b/examples/declarative/tutorials/samegame/samegame1/Button.qml index 72b18bc..a3df028 100644 --- a/examples/declarative/tutorials/samegame/samegame1/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame1/Button.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/tutorials/samegame/samegame1/samegame.qml b/examples/declarative/tutorials/samegame/samegame1/samegame.qml index 01396fa..5cc13fd 100644 --- a/examples/declarative/tutorials/samegame/samegame1/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame1/samegame.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: screen diff --git a/examples/declarative/tutorials/samegame/samegame2/Block.qml b/examples/declarative/tutorials/samegame/samegame2/Block.qml index c271cf7..804c30f 100644 --- a/examples/declarative/tutorials/samegame/samegame2/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame2/Block.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: block diff --git a/examples/declarative/tutorials/samegame/samegame2/Button.qml b/examples/declarative/tutorials/samegame/samegame2/Button.qml index 3bd3099..cbf1b54 100644 --- a/examples/declarative/tutorials/samegame/samegame2/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame2/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/tutorials/samegame/samegame2/samegame.qml b/examples/declarative/tutorials/samegame/samegame2/samegame.qml index ae1916e..11f6229 100644 --- a/examples/declarative/tutorials/samegame/samegame2/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame2/samegame.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![2] import "samegame.js" as SameGame //![2] diff --git a/examples/declarative/tutorials/samegame/samegame3/Block.qml b/examples/declarative/tutorials/samegame/samegame3/Block.qml index 673007e..784a6f4 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Block.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: block diff --git a/examples/declarative/tutorials/samegame/samegame3/Button.qml b/examples/declarative/tutorials/samegame/samegame3/Button.qml index 3bd3099..cbf1b54 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/tutorials/samegame/samegame3/Dialog.qml b/examples/declarative/tutorials/samegame/samegame3/Dialog.qml index ed17e5f..8554d86 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Dialog.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Dialog.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/tutorials/samegame/samegame3/samegame.qml b/examples/declarative/tutorials/samegame/samegame3/samegame.qml index 2c49adc..972b778 100644 --- a/examples/declarative/tutorials/samegame/samegame3/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame3/samegame.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 import "samegame.js" as SameGame Rectangle { diff --git a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml index 8e3ca96..326b1b8 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/examples/declarative/tutorials/samegame/samegame4/content/Button.qml b/examples/declarative/tutorials/samegame/samegame4/content/Button.qml index 3bd3099..cbf1b54 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/Button.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml b/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml index 5c81929..c390202 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 //![0] Rectangle { diff --git a/examples/declarative/tutorials/samegame/samegame4/samegame.qml b/examples/declarative/tutorials/samegame/samegame4/samegame.qml index 4fec71b..e830635 100644 --- a/examples/declarative/tutorials/samegame/samegame4/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame4/samegame.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" import "content/samegame.js" as SameGame diff --git a/examples/declarative/ui-components/dialcontrol/content/Dial.qml b/examples/declarative/ui-components/dialcontrol/content/Dial.qml index ed1b04d..2f1d27a 100644 --- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml +++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml index 9dfe9bd..cbbf916 100644 --- a/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml +++ b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { source: "quit.png" scale: quitMouse.pressed ? 0.8 : 1.0 @@ -49,4 +49,4 @@ Image { anchors.margins: -10 onClicked: Qt.quit() } -} \ No newline at end of file +} diff --git a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml index ed8c7d6..c66dcdd 100644 --- a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml +++ b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //! [imports] -import Qt 4.7 +import QtQuick 1.0 import "content" //! [imports] diff --git a/examples/declarative/ui-components/flipable/content/Card.qml b/examples/declarative/ui-components/flipable/content/Card.qml index d22fa7d..32c4ed1 100644 --- a/examples/declarative/ui-components/flipable/content/Card.qml +++ b/examples/declarative/ui-components/flipable/content/Card.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Flipable { id: container diff --git a/examples/declarative/ui-components/flipable/flipable.qml b/examples/declarative/ui-components/flipable/flipable.qml index 0f775e5..51867f9 100644 --- a/examples/declarative/ui-components/flipable/flipable.qml +++ b/examples/declarative/ui-components/flipable/flipable.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/ui-components/progressbar/content/ProgressBar.qml b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml index f830f95..e92342a 100644 --- a/examples/declarative/ui-components/progressbar/content/ProgressBar.qml +++ b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: progressbar diff --git a/examples/declarative/ui-components/progressbar/main.qml b/examples/declarative/ui-components/progressbar/main.qml index c92e586..a805a7e 100644 --- a/examples/declarative/ui-components/progressbar/main.qml +++ b/examples/declarative/ui-components/progressbar/main.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/ui-components/scrollbar/ScrollBar.qml b/examples/declarative/ui-components/scrollbar/ScrollBar.qml index ee8e9fa..faa501a 100644 --- a/examples/declarative/ui-components/scrollbar/ScrollBar.qml +++ b/examples/declarative/ui-components/scrollbar/ScrollBar.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: scrollBar diff --git a/examples/declarative/ui-components/scrollbar/main.qml b/examples/declarative/ui-components/scrollbar/main.qml index 930c3b8..b5c1a8f 100644 --- a/examples/declarative/ui-components/scrollbar/main.qml +++ b/examples/declarative/ui-components/scrollbar/main.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 640 diff --git a/examples/declarative/ui-components/searchbox/SearchBox.qml b/examples/declarative/ui-components/searchbox/SearchBox.qml index d000750..f54954a 100644 --- a/examples/declarative/ui-components/searchbox/SearchBox.qml +++ b/examples/declarative/ui-components/searchbox/SearchBox.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 FocusScope { id: focusScope diff --git a/examples/declarative/ui-components/searchbox/main.qml b/examples/declarative/ui-components/searchbox/main.qml index 513c298..09b1829 100644 --- a/examples/declarative/ui-components/searchbox/main.qml +++ b/examples/declarative/ui-components/searchbox/main.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/examples/declarative/ui-components/slideswitch/content/Switch.qml b/examples/declarative/ui-components/slideswitch/content/Switch.qml index 9632fd6..06d7a2b 100644 --- a/examples/declarative/ui-components/slideswitch/content/Switch.qml +++ b/examples/declarative/ui-components/slideswitch/content/Switch.qml @@ -39,7 +39,7 @@ ****************************************************************************/ //![0] -import Qt 4.7 +import QtQuick 1.0 Item { id: toggleswitch diff --git a/examples/declarative/ui-components/slideswitch/slideswitch.qml b/examples/declarative/ui-components/slideswitch/slideswitch.qml index a0a0eb2..0472f9f 100644 --- a/examples/declarative/ui-components/slideswitch/slideswitch.qml +++ b/examples/declarative/ui-components/slideswitch/slideswitch.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/ui-components/spinner/content/Spinner.qml b/examples/declarative/ui-components/spinner/content/Spinner.qml index 910efb9..853c787 100644 --- a/examples/declarative/ui-components/spinner/content/Spinner.qml +++ b/examples/declarative/ui-components/spinner/content/Spinner.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Image { property alias model: view.model diff --git a/examples/declarative/ui-components/spinner/main.qml b/examples/declarative/ui-components/spinner/main.qml index a196e72..416950f 100644 --- a/examples/declarative/ui-components/spinner/main.qml +++ b/examples/declarative/ui-components/spinner/main.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml index 30eba68..f066fd2 100644 --- a/examples/declarative/ui-components/tabwidget/TabWidget.qml +++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { id: tabWidget diff --git a/examples/declarative/ui-components/tabwidget/main.qml b/examples/declarative/ui-components/tabwidget/main.qml index b9ca2a1..842ef1a 100644 --- a/examples/declarative/ui-components/tabwidget/main.qml +++ b/examples/declarative/ui-components/tabwidget/main.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 TabWidget { id: tabs diff --git a/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml b/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml index f77e1de..78f93b5 100644 --- a/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml +++ b/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 350; height: 400 diff --git a/examples/tutorials/gettingStarted/gsQml/core/button.qml b/examples/tutorials/gettingStarted/gsQml/core/button.qml index dd5dcad..0b42bd1 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/button.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/button.qml @@ -39,7 +39,7 @@ ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { //identifier of the item @@ -105,4 +105,4 @@ Rectangle { //Animate the scale property change Behavior on scale { NumberAnimation{ duration: 55 } } -} \ No newline at end of file +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml index 7f47d9f..5cf8472 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/editMenu.qml @@ -39,7 +39,7 @@ ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: editMenu @@ -102,4 +102,4 @@ Rectangle { } } } -} \ No newline at end of file +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml index 425f717..7004b63 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id:dialog @@ -160,4 +160,4 @@ Rectangle { GradientStop { position: 1.0; color: "#03333333" } } } -} \ No newline at end of file +} diff --git a/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml index afe48c7..517c1811 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: fileMenu diff --git a/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml index 0695772..bcab2fb 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/menuBar.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: menuBar diff --git a/examples/tutorials/gettingStarted/gsQml/core/textArea.qml b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml index 6d3d214..2b327fc 100644 --- a/examples/tutorials/gettingStarted/gsQml/core/textArea.qml +++ b/examples/tutorials/gettingStarted/gsQml/core/textArea.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id:textArea @@ -84,4 +84,4 @@ Rectangle { selectByMouse: true } } -} \ No newline at end of file +} diff --git a/examples/tutorials/gettingStarted/gsQml/texteditor.qml b/examples/tutorials/gettingStarted/gsQml/texteditor.qml index 5a75e0b..b50dc25 100644 --- a/examples/tutorials/gettingStarted/gsQml/texteditor.qml +++ b/examples/tutorials/gettingStarted/gsQml/texteditor.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "core" Rectangle { diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index e9da4f7..f26b602 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -101,7 +101,7 @@ QT_BEGIN_NAMESPACE The following example moves the Y axis of the \l Rectangle elements while still allowing the \l Row element to lay the items out as if they had not been transformed: \qml - import Qt 4.7 + import QtQuick 1.0 Row { Rectangle { diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 3ac095c..6f5608a 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -1422,7 +1422,7 @@ void QDeclarativeTextEditPrivate::updateDefaultTextOption() Only relevant on platforms, which provide virtual keyboards. \code - import Qt 4.7 + import QtQuick 1.0 TextEdit { id: textEdit text: "Hello world!" @@ -1473,7 +1473,7 @@ void QDeclarativeTextEdit::openSoftwareInputPanel() Only relevant on platforms, which provide virtual keyboards. \code - import Qt 4.7 + import QtQuick 1.0 TextEdit { id: textEdit text: "Hello world!" diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index 5604b82..4817999 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -651,7 +651,7 @@ void QDeclarativeTextInput::setAutoScroll(bool b) input of integers between 11 and 31 into the text input: \code - import Qt 4.7 + import QtQuick 1.0 TextInput{ validator: IntValidator{bottom: 11; top: 31;} focus: true @@ -1334,7 +1334,7 @@ void QDeclarativeTextInput::moveCursorSelection(int position) Only relevant on platforms, which provide virtual keyboards. \qml - import Qt 4.7 + import QtQuick 1.0 TextInput { id: textInput text: "Hello world!" @@ -1385,7 +1385,7 @@ void QDeclarativeTextInput::openSoftwareInputPanel() Only relevant on platforms, which provide virtual keyboards. \qml - import Qt 4.7 + import QtQuick 1.0 TextInput { id: textInput text: "Hello world!" diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 21d1ea7..439f500 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -142,7 +142,7 @@ public: The example below places three colored rectangles in a ListView. \code - import Qt 4.7 + import QtQuick 1.0 Rectangle { VisualItemModel { diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index 8c5fd3a..90d38b3 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -1286,7 +1286,7 @@ bool QDeclarativeCompiler::buildSubObject(Object *obj, const BindingContext &ctx int QDeclarativeCompiler::componentTypeRef() { - QDeclarativeType *t = QDeclarativeMetaType::qmlType("Qt/Component",4,7); + QDeclarativeType *t = QDeclarativeMetaType::qmlType("QtQuick/Component",1,0); for (int ii = output->types.count() - 1; ii >= 0; --ii) { if (output->types.at(ii).type == t) return ii; diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 7f58166..b532b0c 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -78,7 +78,7 @@ class QByteArray; For example, if there is a \c main.qml file like this: \qml - import Qt 4.7 + import QtQuick 1.0 Item { width: 200 diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp index de45a95..59d5cfa 100644 --- a/src/declarative/qml/qdeclarativecontext.cpp +++ b/src/declarative/qml/qdeclarativecontext.cpp @@ -85,7 +85,7 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() context->setContextProperty("myModel", &modelData); QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nListView { model: myModel }", QUrl()); + component.setData("import QtQuick 1.0\nListView { model: myModel }", QUrl()); component.create(context); \endcode @@ -112,7 +112,7 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate() context->setContextObject(&myDataSet); QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nListView { model: myModel }", QUrl()); + component.setData("import QtQuick 1.0\nListView { model: myModel }", QUrl()); component.create(context); \endcode diff --git a/src/declarative/qml/qdeclarativedom.cpp b/src/declarative/qml/qdeclarativedom.cpp index 1a9b501..fa79425 100644 --- a/src/declarative/qml/qdeclarativedom.cpp +++ b/src/declarative/qml/qdeclarativedom.cpp @@ -896,7 +896,7 @@ QByteArray QDeclarativeDomObject::customTypeData() const */ bool QDeclarativeDomObject::isComponent() const { - return (d->object && d->object->typeName == "Qt/Component"); + return (d->object && (d->object->typeName == "Qt/Component" || d->object->typeName == "QtQuick/Component")); } /*! diff --git a/src/declarative/qml/qdeclarativeexpression.cpp b/src/declarative/qml/qdeclarativeexpression.cpp index 6fc4df0..77a1ba4 100644 --- a/src/declarative/qml/qdeclarativeexpression.cpp +++ b/src/declarative/qml/qdeclarativeexpression.cpp @@ -202,7 +202,7 @@ QScriptValue QDeclarativeExpressionPrivate::evalInObjectScope(QDeclarativeContex For example, given a file \c main.qml like this: \qml - import Qt 4.7 + import QtQuick 1.0 Item { width: 200; height: 200 diff --git a/src/declarative/util/qdeclarativefontloader.cpp b/src/declarative/util/qdeclarativefontloader.cpp index 6879494..3e4a81a 100644 --- a/src/declarative/util/qdeclarativefontloader.cpp +++ b/src/declarative/util/qdeclarativefontloader.cpp @@ -157,7 +157,7 @@ QHash QDeclarativeFontLoaderPrivate::fonts; For example: \qml - import Qt 4.7 + import QtQuick 1.0 Column { FontLoader { id: fixedFont; name: "Courier" } diff --git a/src/declarative/util/qdeclarativetimer.cpp b/src/declarative/util/qdeclarativetimer.cpp index 56320e6..c240f22 100644 --- a/src/declarative/util/qdeclarativetimer.cpp +++ b/src/declarative/util/qdeclarativetimer.cpp @@ -82,7 +82,7 @@ public: object to access the current time. \qml - import Qt 4.7 + import QtQuick 1.0 Item { Timer { diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index f0ed80b..24edc89 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -531,7 +531,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty(animationComponent.create()); @@ -685,7 +685,7 @@ void tst_qdeclarativeanimations::easingProperties() { QDeclarativeEngine engine; - QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"OutBounce\"; easing.amplitude: 5.0 }"; + QString componentStr = "import QtQuick 1.0\nPropertyAnimation { easing.type: \"OutBounce\"; easing.amplitude: 5.0 }"; QDeclarativeComponent animationComponent(&engine); animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativePropertyAnimation *animObject = qobject_cast(animationComponent.create()); @@ -697,7 +697,7 @@ void tst_qdeclarativeanimations::easingProperties() { QDeclarativeEngine engine; - QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"OutElastic\"; easing.amplitude: 5.0; easing.period: 3.0}"; + QString componentStr = "import QtQuick 1.0\nPropertyAnimation { easing.type: \"OutElastic\"; easing.amplitude: 5.0; easing.period: 3.0}"; QDeclarativeComponent animationComponent(&engine); animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativePropertyAnimation *animObject = qobject_cast(animationComponent.create()); @@ -710,7 +710,7 @@ void tst_qdeclarativeanimations::easingProperties() { QDeclarativeEngine engine; - QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"InOutBack\"; easing.overshoot: 2 }"; + QString componentStr = "import QtQuick 1.0\nPropertyAnimation { easing.type: \"InOutBack\"; easing.overshoot: 2 }"; QDeclarativeComponent animationComponent(&engine); animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativePropertyAnimation *animObject = qobject_cast(animationComponent.create()); diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml b/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml index 62e6be5..a452447 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/color.qml b/tests/auto/declarative/qdeclarativebehaviors/data/color.qml index e075bd0..c4b783a 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/color.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/color.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml b/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml index c766f42..88ddfaa 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml b/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml index e1f4699..f6cfa5e 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml b/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml index c0f4eac..e318dd2 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: wrapper diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml b/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml index b58e332..6c78a84 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml b/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml index 0b5d00b..3baa1ac 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml index 6eb0729..ddb5bbd 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml index 42b80a5..c0b71cd 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/groupedPropertyCrash.qml b/tests/auto/declarative/qdeclarativebehaviors/data/groupedPropertyCrash.qml index c052366..8aa590b 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/groupedPropertyCrash.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/groupedPropertyCrash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml b/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml index 9e328d6..76379c0 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml b/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml index 5857c4d..c5c78d1 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml b/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml index e3fd77d..d19da29 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml index d41add3..03b5421 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml b/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml index 4528cce..9fca5c3 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml b/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml index d439875..25cdf10 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml b/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml index f2f6352..c05cdaa 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml b/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml index de27f69..6ba0118 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 height: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml b/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml index f3ff620..fca416c 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/startup2.qml b/tests/auto/declarative/qdeclarativebehaviors/data/startup2.qml index 1911cc4..eb62761 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/data/startup2.qml +++ b/tests/auto/declarative/qdeclarativebehaviors/data/startup2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; diff --git a/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml b/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml index 9c619e6..9449736 100644 --- a/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml +++ b/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: screen diff --git a/tests/auto/declarative/qdeclarativebinding/data/test-binding2.qml b/tests/auto/declarative/qdeclarativebinding/data/test-binding2.qml index e0f1811..3e99e2b 100644 --- a/tests/auto/declarative/qdeclarativebinding/data/test-binding2.qml +++ b/tests/auto/declarative/qdeclarativebinding/data/test-binding2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: screen diff --git a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp index c77d395..2f00f60 100644 --- a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp +++ b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp @@ -94,7 +94,7 @@ tst_qdeclarativeborderimage::tst_qdeclarativeborderimage() void tst_qdeclarativeborderimage::noSource() { - QString componentStr = "import Qt 4.7\nBorderImage { source: \"\" }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -138,7 +138,7 @@ void tst_qdeclarativeborderimage::imageSource() if (!error.isEmpty()) QTest::ignoreMessage(QtWarningMsg, error.toUtf8()); - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\" }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" + source + "\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -165,7 +165,7 @@ void tst_qdeclarativeborderimage::imageSource() void tst_qdeclarativeborderimage::clearSource() { - QString componentStr = "import Qt 4.7\nBorderImage { source: srcImage }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: srcImage }"; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png")); QDeclarativeComponent component(&engine); @@ -185,7 +185,7 @@ void tst_qdeclarativeborderimage::clearSource() void tst_qdeclarativeborderimage::resized() { - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() + "\"; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() + "\"; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -200,7 +200,7 @@ void tst_qdeclarativeborderimage::resized() void tst_qdeclarativeborderimage::smooth() { - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -217,7 +217,7 @@ void tst_qdeclarativeborderimage::smooth() void tst_qdeclarativeborderimage::tileModes() { { - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 100; height: 300; horizontalTileMode: BorderImage.Repeat; verticalTileMode: BorderImage.Repeat }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 100; height: 300; horizontalTileMode: BorderImage.Repeat; verticalTileMode: BorderImage.Repeat }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -230,7 +230,7 @@ void tst_qdeclarativeborderimage::tileModes() delete obj; } { - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 150; horizontalTileMode: BorderImage.Round; verticalTileMode: BorderImage.Round }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 150; horizontalTileMode: BorderImage.Round; verticalTileMode: BorderImage.Round }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -257,7 +257,7 @@ void tst_qdeclarativeborderimage::sciSource() server->serveDirectory(SRCDIR "/data"); } - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\"; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" + source + "\"; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -302,7 +302,7 @@ void tst_qdeclarativeborderimage::invalidSciFile() QTest::ignoreMessage(QtWarningMsg, "QDeclarativeGridScaledImage: Invalid tile rule specified. Using Stretch."); // for "Roun" QTest::ignoreMessage(QtWarningMsg, "QDeclarativeGridScaledImage: Invalid tile rule specified. Using Stretch."); // for "Repea" - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/invalid.sci").toString() +"\"; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/invalid.sci").toString() +"\"; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); @@ -320,7 +320,7 @@ void tst_qdeclarativeborderimage::pendingRemoteRequest() { QFETCH(QString, source); - QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\" }"; + QString componentStr = "import QtQuick 1.0\nBorderImage { source: \"" + source + "\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeBorderImage *obj = qobject_cast(component.create()); diff --git a/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml b/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml index 4ee1e75..4a06791 100644 --- a/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml +++ b/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item{ id: root diff --git a/tests/auto/declarative/qdeclarativeconnection/data/connection-targetchange.qml b/tests/auto/declarative/qdeclarativeconnection/data/connection-targetchange.qml index bb9a3bc..dd92cb9 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/connection-targetchange.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/connection-targetchange.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Component { diff --git a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-ignored.qml b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-ignored.qml index 764d5ab..459c346 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-ignored.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-ignored.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen diff --git a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-notarget.qml b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-notarget.qml index 09e7812..8eddf43 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-notarget.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-notarget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen diff --git a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-parent.qml b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-parent.qml index 478503d..953347a 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-parent.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-parent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen diff --git a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals.qml b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals.qml index d4e8d7e..3702bdb 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen diff --git a/tests/auto/declarative/qdeclarativeconnection/data/error-object.qml b/tests/auto/declarative/qdeclarativeconnection/data/error-object.qml index a8127a4..376a218 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/error-object.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/error-object.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Connections { diff --git a/tests/auto/declarative/qdeclarativeconnection/data/error-property.qml b/tests/auto/declarative/qdeclarativeconnection/data/error-property.qml index 2791f56..677af15 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/error-property.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/error-property.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Connections { fakeProperty: {} } diff --git a/tests/auto/declarative/qdeclarativeconnection/data/error-property2.qml b/tests/auto/declarative/qdeclarativeconnection/data/error-property2.qml index 0205c0a..127e58e 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/error-property2.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/error-property2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Connections { onfakeProperty: {} } diff --git a/tests/auto/declarative/qdeclarativeconnection/data/error-syntax.qml b/tests/auto/declarative/qdeclarativeconnection/data/error-syntax.qml index 867e4e2..6a82528 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/error-syntax.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/error-syntax.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Connections { diff --git a/tests/auto/declarative/qdeclarativeconnection/data/test-connection.qml b/tests/auto/declarative/qdeclarativeconnection/data/test-connection.qml index 954ca97..c599083 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/test-connection.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/test-connection.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen; width: 50 diff --git a/tests/auto/declarative/qdeclarativeconnection/data/test-connection2.qml b/tests/auto/declarative/qdeclarativeconnection/data/test-connection2.qml index 9e5a99c..f0dbaba 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/test-connection2.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/test-connection2.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Connections { id: connection; target: connection; onTargetChanged: 1 == 1 } diff --git a/tests/auto/declarative/qdeclarativeconnection/data/test-connection3.qml b/tests/auto/declarative/qdeclarativeconnection/data/test-connection3.qml index 51efde6..94c9c7c 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/test-connection3.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/test-connection3.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Connections {} diff --git a/tests/auto/declarative/qdeclarativeconnection/data/trimming.qml b/tests/auto/declarative/qdeclarativeconnection/data/trimming.qml index 361474c..00507d9 100644 --- a/tests/auto/declarative/qdeclarativeconnection/data/trimming.qml +++ b/tests/auto/declarative/qdeclarativeconnection/data/trimming.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: screen; width: 50 diff --git a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp index 605cf8e..100224b 100644 --- a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp +++ b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp @@ -233,7 +233,7 @@ private: #define TEST_CONTEXT_PROPERTY(ctxt, name, value) \ { \ QDeclarativeComponent component(&engine); \ - component.setData("import Qt 4.7; QtObject { property variant test: " #name " }", QUrl()); \ + component.setData("import QtQuick 1.0; QtObject { property variant test: " #name " }", QUrl()); \ \ QObject *obj = component.create(ctxt); \ \ @@ -283,7 +283,7 @@ void tst_qdeclarativecontext::setContextProperty() // Changes in context properties { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant test: a }", QUrl()); QObject *obj = component.create(&ctxt2); @@ -295,7 +295,7 @@ void tst_qdeclarativecontext::setContextProperty() } { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant test: b }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant test: b }", QUrl()); QObject *obj = component.create(&ctxt2); @@ -309,7 +309,7 @@ void tst_qdeclarativecontext::setContextProperty() } { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant test: e.a }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant test: e.a }", QUrl()); QObject *obj = component.create(&ctxt2); @@ -323,7 +323,7 @@ void tst_qdeclarativecontext::setContextProperty() // New context properties { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant test: a }", QUrl()); QObject *obj = component.create(&ctxt2); @@ -337,7 +337,7 @@ void tst_qdeclarativecontext::setContextProperty() // Setting an object-variant context property { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { id: root; property int a: 10; property int test: ctxtProp.a; property variant obj: root; }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { id: root; property int a: 10; property int test: ctxtProp.a; property variant obj: root; }", QUrl()); QDeclarativeContext ctxt(engine.rootContext()); ctxt.setContextProperty("ctxtProp", QVariant()); @@ -385,7 +385,7 @@ void tst_qdeclarativecontext::setContextObject() // Changes in context properties { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant test: a }", QUrl()); QObject *obj = component.create(&ctxt); @@ -417,7 +417,7 @@ void tst_qdeclarativecontext::destruction() void tst_qdeclarativecontext::idAsContextProperty() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { property variant a; a: QtObject { id: myObject } }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { property variant a; a: QtObject { id: myObject } }", QUrl()); QObject *obj = component.create(); QVERIFY(obj); @@ -437,7 +437,7 @@ void tst_qdeclarativecontext::idAsContextProperty() void tst_qdeclarativecontext::readOnlyContexts() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; QtObject { id: me }", QUrl()); + component.setData("import QtQuick 1.0; QtObject { id: me }", QUrl()); QObject *obj = component.create(); QVERIFY(obj); diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp index dd58baf..e6a81b8 100644 --- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp +++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp @@ -283,7 +283,7 @@ void tst_QDeclarativeDebug::initTestCase() m_engine = new QDeclarativeEngine(this); QList qml; - qml << "import Qt 4.7\n" + qml << "import QtQuick 1.0\n" "Item {" "width: 10; height: 20; scale: blueRect.scale;" "Rectangle { id: blueRect; width: 500; height: 600; color: \"blue\"; }" @@ -294,11 +294,11 @@ void tst_QDeclarativeDebug::initTestCase() "}"; // add second component to test multiple root contexts - qml << "import Qt 4.7\n" + qml << "import QtQuick 1.0\n" "Item {}"; // and a third to test methods - qml << "import Qt 4.7\n" + qml << "import QtQuick 1.0\n" "Item {" "function myMethodNoArgs() { return 3; }\n" "function myMethod(a) { return a + 9; }\n" diff --git a/tests/auto/declarative/qdeclarativedom/data/MyComponent.qml b/tests/auto/declarative/qdeclarativedom/data/MyComponent.qml index dd9e9ea..f6760b6 100644 --- a/tests/auto/declarative/qdeclarativedom/data/MyComponent.qml +++ b/tests/auto/declarative/qdeclarativedom/data/MyComponent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { } diff --git a/tests/auto/declarative/qdeclarativedom/data/MyItem.qml b/tests/auto/declarative/qdeclarativedom/data/MyItem.qml index dd9e9ea..f6760b6 100644 --- a/tests/auto/declarative/qdeclarativedom/data/MyItem.qml +++ b/tests/auto/declarative/qdeclarativedom/data/MyItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { } diff --git a/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml b/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml index d26b299..86a7176 100644 --- a/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml +++ b/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 diff --git a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml index d26b299..86a7176 100644 --- a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml +++ b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 diff --git a/tests/auto/declarative/qdeclarativedom/data/top.qml b/tests/auto/declarative/qdeclarativedom/data/top.qml index 6405cd2..56ea9df 100644 --- a/tests/auto/declarative/qdeclarativedom/data/top.qml +++ b/tests/auto/declarative/qdeclarativedom/data/top.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 MyComponent { width: 100 diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp index e1b4c1c..53c10be 100644 --- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp +++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp @@ -86,7 +86,7 @@ private: void tst_qdeclarativedom::loadSimple() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {}"; QDeclarativeDomDocument document; @@ -97,15 +97,15 @@ void tst_qdeclarativedom::loadSimple() QVERIFY(rootObject.isValid()); QVERIFY(!rootObject.isComponent()); QVERIFY(!rootObject.isCustomType()); - QVERIFY(rootObject.objectType() == "Qt/Item"); - QVERIFY(rootObject.objectTypeMajorVersion() == 4); - QVERIFY(rootObject.objectTypeMinorVersion() == 7); + QVERIFY(rootObject.objectType() == "QtQuick/Item"); + QVERIFY(rootObject.objectTypeMajorVersion() == 1); + QVERIFY(rootObject.objectTypeMinorVersion() == 0); } // Test regular properties void tst_qdeclarativedom::loadProperties() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item { id : item; x : 300; visible : true }"; QDeclarativeDomDocument document; @@ -120,7 +120,7 @@ void tst_qdeclarativedom::loadProperties() QVERIFY(xProperty.propertyName() == "x"); QCOMPARE(xProperty.propertyNameParts().count(), 1); QVERIFY(xProperty.propertyNameParts().at(0) == "x"); - QCOMPARE(xProperty.position(), 32); + QCOMPARE(xProperty.position(), 37); QCOMPARE(xProperty.length(), 1); QVERIFY(xProperty.value().isLiteral()); QVERIFY(xProperty.value().toLiteral().literal() == "300"); @@ -129,7 +129,7 @@ void tst_qdeclarativedom::loadProperties() QVERIFY(visibleProperty.propertyName() == "visible"); QCOMPARE(visibleProperty.propertyNameParts().count(), 1); QVERIFY(visibleProperty.propertyNameParts().at(0) == "visible"); - QCOMPARE(visibleProperty.position(), 41); + QCOMPARE(visibleProperty.position(), 46); QCOMPARE(visibleProperty.length(), 7); QVERIFY(visibleProperty.value().isLiteral()); QVERIFY(visibleProperty.value().toLiteral().literal() == "true"); @@ -139,7 +139,7 @@ void tst_qdeclarativedom::loadProperties() void tst_qdeclarativedom::loadGroupedProperties() { { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item { anchors.left: parent.left; anchors.right: parent.right }"; QDeclarativeDomDocument document; @@ -166,7 +166,7 @@ void tst_qdeclarativedom::loadGroupedProperties() QCOMPARE(leftProperty.propertyNameParts().count(), 2); QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors"); QVERIFY(leftProperty.propertyNameParts().at(1) == "left"); - QCOMPARE(leftProperty.position(), 21); + QCOMPARE(leftProperty.position(), 26); QCOMPARE(leftProperty.length(), 12); QVERIFY(leftProperty.value().isBinding()); QVERIFY(leftProperty.value().toBinding().binding() == "parent.left"); @@ -175,14 +175,14 @@ void tst_qdeclarativedom::loadGroupedProperties() QCOMPARE(rightProperty.propertyNameParts().count(), 2); QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors"); QVERIFY(rightProperty.propertyNameParts().at(1) == "right"); - QCOMPARE(rightProperty.position(), 48); + QCOMPARE(rightProperty.position(), 53); QCOMPARE(rightProperty.length(), 13); QVERIFY(rightProperty.value().isBinding()); QVERIFY(rightProperty.value().toBinding().binding() == "parent.right"); } { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item { \n" " anchors {\n" " left: parent.left\n" @@ -214,7 +214,7 @@ void tst_qdeclarativedom::loadGroupedProperties() QCOMPARE(leftProperty.propertyNameParts().count(), 2); QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors"); QVERIFY(leftProperty.propertyNameParts().at(1) == "left"); - QCOMPARE(leftProperty.position(), 44); + QCOMPARE(leftProperty.position(), 49); QCOMPARE(leftProperty.length(), 4); QVERIFY(leftProperty.value().isBinding()); QVERIFY(leftProperty.value().toBinding().binding() == "parent.left"); @@ -223,7 +223,7 @@ void tst_qdeclarativedom::loadGroupedProperties() QCOMPARE(rightProperty.propertyNameParts().count(), 2); QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors"); QVERIFY(rightProperty.propertyNameParts().at(1) == "right"); - QCOMPARE(rightProperty.position(), 70); + QCOMPARE(rightProperty.position(), 75); QCOMPARE(rightProperty.length(), 5); QVERIFY(rightProperty.value().isBinding()); QVERIFY(rightProperty.value().toBinding().binding() == "parent.right"); @@ -233,7 +233,7 @@ void tst_qdeclarativedom::loadGroupedProperties() void tst_qdeclarativedom::loadChildObject() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item { Item {} }"; QDeclarativeDomDocument document; @@ -252,7 +252,7 @@ void tst_qdeclarativedom::loadChildObject() QDeclarativeDomObject childItem = list.values().first().toObject(); QVERIFY(childItem.isValid()); - QVERIFY(childItem.objectType() == "Qt/Item"); + QVERIFY(childItem.objectType() == "QtQuick/Item"); } void tst_qdeclarativedom::loadComposite() @@ -278,7 +278,7 @@ void tst_qdeclarativedom::loadComposite() void tst_qdeclarativedom::testValueSource() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Rectangle { SpringAnimation on height { spring: 1.4; damping: .15; to: Math.min(Math.max(-130, value*2.2 - 130), 133); }}"; QDeclarativeEngine freshEngine; @@ -295,7 +295,7 @@ void tst_qdeclarativedom::testValueSource() QDeclarativeDomObject valueSourceObject = valueSource.object(); QVERIFY(valueSourceObject.isValid()); - QVERIFY(valueSourceObject.objectType() == "Qt/SpringAnimation"); + QVERIFY(valueSourceObject.objectType() == "QtQuick/SpringAnimation"); const QDeclarativeDomValue springValue = valueSourceObject.property("spring").value(); QVERIFY(!springValue.isInvalid()); @@ -310,7 +310,7 @@ void tst_qdeclarativedom::testValueSource() void tst_qdeclarativedom::testValueInterceptor() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Rectangle { Behavior on height { NumberAnimation { duration: 100 } } }"; QDeclarativeEngine freshEngine; @@ -327,7 +327,7 @@ void tst_qdeclarativedom::testValueInterceptor() QDeclarativeDomObject valueInterceptorObject = valueInterceptor.object(); QVERIFY(valueInterceptorObject.isValid()); - QVERIFY(valueInterceptorObject.objectType() == "Qt/Behavior"); + QVERIFY(valueInterceptorObject.objectType() == "QtQuick/Behavior"); const QDeclarativeDomValue animationValue = valueInterceptorObject.property("animation").value(); QVERIFY(!animationValue.isInvalid()); @@ -337,7 +337,7 @@ void tst_qdeclarativedom::testValueInterceptor() // Test QDeclarativeDomDocument::imports() void tst_qdeclarativedom::loadImports() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "import importlib.sublib 1.1\n" "import importlib.sublib 1.0 as NewFoo\n" "import 'import'\n" @@ -353,9 +353,9 @@ void tst_qdeclarativedom::loadImports() QDeclarativeDomImport import = document.imports().at(0); QCOMPARE(import.type(), QDeclarativeDomImport::Library); - QCOMPARE(import.uri(), QLatin1String("Qt")); + QCOMPARE(import.uri(), QLatin1String("QtQuick")); QCOMPARE(import.qualifier(), QString()); - QCOMPARE(import.version(), QLatin1String("4.7")); + QCOMPARE(import.version(), QLatin1String("1.0")); import = document.imports().at(1); QCOMPARE(import.type(), QDeclarativeDomImport::Library); @@ -385,7 +385,7 @@ void tst_qdeclarativedom::loadImports() // Test loading a file with errors void tst_qdeclarativedom::loadErrors() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " foo: 12\n" "}"; @@ -405,7 +405,7 @@ void tst_qdeclarativedom::loadErrors() // Test loading a file with syntax errors void tst_qdeclarativedom::loadSyntaxErrors() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "asdf"; QDeclarativeDomDocument document; @@ -423,7 +423,7 @@ void tst_qdeclarativedom::loadSyntaxErrors() // Test attempting to load a file with remote references void tst_qdeclarativedom::loadRemoteErrors() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "import \"http://localhost/exampleQmlScript.js\" as Script\n" "Item {\n" "}"; @@ -443,7 +443,7 @@ void tst_qdeclarativedom::loadRemoteErrors() void tst_qdeclarativedom::loadDynamicProperty() { { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " property int a\n" " property bool b\n" @@ -478,20 +478,20 @@ void tst_qdeclarativedom::loadDynamicProperty() QCOMPARE(d.length(), test_length); \ } \ - DP_TEST(0, a, QVariant::Int, 25, 14, "int"); - DP_TEST(1, b, QVariant::Bool, 44, 15, "bool"); - DP_TEST(2, c, QMetaType::QReal, 64, 17, "double"); - DP_TEST(3, d, QMetaType::QReal, 86, 15, "real"); - DP_TEST(4, e, QVariant::String, 106, 17, "string"); - DP_TEST(5, f, QVariant::Url, 128, 14, "url"); - DP_TEST(6, g, QVariant::Color, 147, 16, "color"); - DP_TEST(7, h, QVariant::DateTime, 168, 15, "date"); - DP_TEST(8, i, qMetaTypeId(), 188, 18, "variant"); - DP_TEST(9, j, -1, 211, 19, "QtObject"); + DP_TEST(0, a, QVariant::Int, 30, 14, "int"); + DP_TEST(1, b, QVariant::Bool, 49, 15, "bool"); + DP_TEST(2, c, QMetaType::QReal, 69, 17, "double"); + DP_TEST(3, d, QMetaType::QReal, 91, 15, "real"); + DP_TEST(4, e, QVariant::String, 111, 17, "string"); + DP_TEST(5, f, QVariant::Url, 133, 14, "url"); + DP_TEST(6, g, QVariant::Color, 152, 16, "color"); + DP_TEST(7, h, QVariant::DateTime, 173, 15, "date"); + DP_TEST(8, i, qMetaTypeId(), 193, 18, "variant"); + DP_TEST(9, j, -1, 216, 19, "QtObject"); } { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " id: item\n" " property int a: 12\n" @@ -546,7 +546,7 @@ void tst_qdeclarativedom::loadComponent() { // Explicit component { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " Component {\n" " id: myComponent\n" @@ -575,9 +575,9 @@ void tst_qdeclarativedom::loadComponent() QDeclarativeDomComponent component = componentObject.toComponent(); QVERIFY(component.isValid()); - QVERIFY(component.objectType() == "Qt/Component"); - QVERIFY(component.objectTypeMajorVersion() == 4); - QVERIFY(component.objectTypeMinorVersion() == 7); + QVERIFY(component.objectType() == "QtQuick/Component"); + QVERIFY(component.objectTypeMajorVersion() == 1); + QVERIFY(component.objectTypeMinorVersion() == 0); QVERIFY(component.objectClassName() == "Component"); QVERIFY(component.objectId() == "myComponent"); QVERIFY(component.properties().isEmpty()); @@ -585,7 +585,7 @@ void tst_qdeclarativedom::loadComponent() QVERIFY(component.isCustomType() == false); QVERIFY(component.customTypeData() == ""); QVERIFY(component.isComponent()); - QCOMPARE(component.position(), 25); + QCOMPARE(component.position(), 30); QCOMPARE(component.length(), 57); QVERIFY(component.componentRoot().isValid()); @@ -594,7 +594,7 @@ void tst_qdeclarativedom::loadComponent() // Implicit component { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "ListView {\n" " delegate: Item {}\n" "}"; @@ -615,7 +615,7 @@ void tst_qdeclarativedom::loadComponent() QDeclarativeDomComponent component = componentObject.toComponent(); QVERIFY(component.isValid()); - QVERIFY(component.objectType() == "Qt/Component"); + QVERIFY(component.objectType() == "QtQuick/Component"); QVERIFY(component.objectClassName() == "Component"); QVERIFY(component.objectId() == ""); QVERIFY(component.properties().isEmpty()); @@ -623,7 +623,7 @@ void tst_qdeclarativedom::loadComponent() QVERIFY(component.isCustomType() == false); QVERIFY(component.customTypeData() == ""); QVERIFY(component.isComponent()); - QCOMPARE(component.position(), 39); + QCOMPARE(component.position(), 44); QCOMPARE(component.length(), 7); QVERIFY(component.componentRoot().isValid()); @@ -644,7 +644,7 @@ void tst_qdeclarativedom::object_dynamicProperty() // Valid object, no dynamic properties { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {}"; QDeclarativeDomDocument document; @@ -659,7 +659,7 @@ void tst_qdeclarativedom::object_dynamicProperty() // Valid object, dynamic properties { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " property int a\n" "}"; @@ -679,7 +679,7 @@ void tst_qdeclarativedom::object_dynamicProperty() QVERIFY(p.propertyType() == QVariant::Int); QVERIFY(p.propertyTypeName() == "int"); QVERIFY(p.isDefaultProperty() == false); - QCOMPARE(p.position(), 25); + QCOMPARE(p.position(), 30); QCOMPARE(p.length(), 14); } @@ -697,7 +697,7 @@ void tst_qdeclarativedom::object_property() // Valid object - no default { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " x: 10\n" " y: 12\n" @@ -720,7 +720,7 @@ void tst_qdeclarativedom::object_property() QVERIFY(x.isDefaultProperty() == false); QVERIFY(x.value().isLiteral()); QVERIFY(x.value().toLiteral().literal() == "10"); - QCOMPARE(x.position(), 25); + QCOMPARE(x.position(), 30); QCOMPARE(x.length(), 1); QDeclarativeDomProperty y = rootObject.property("y"); @@ -731,13 +731,13 @@ void tst_qdeclarativedom::object_property() QVERIFY(y.isDefaultProperty() == false); QVERIFY(y.value().isLiteral()); QVERIFY(y.value().toLiteral().literal() == "12"); - QCOMPARE(y.position(), 35); + QCOMPARE(y.position(), 40); QCOMPARE(y.length(), 1); } // Valid object - with default { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " x: 10\n" " y: 12\n" @@ -761,7 +761,7 @@ void tst_qdeclarativedom::object_property() QVERIFY(x.isDefaultProperty() == false); QVERIFY(x.value().isLiteral()); QVERIFY(x.value().toLiteral().literal() == "10"); - QCOMPARE(x.position(), 25); + QCOMPARE(x.position(), 30); QCOMPARE(x.length(), 1); QDeclarativeDomProperty y = rootObject.property("y"); @@ -772,7 +772,7 @@ void tst_qdeclarativedom::object_property() QVERIFY(y.isDefaultProperty() == false); QVERIFY(y.value().isLiteral()); QVERIFY(y.value().toLiteral().literal() == "12"); - QCOMPARE(y.position(), 35); + QCOMPARE(y.position(), 40); QCOMPARE(y.length(), 1); QDeclarativeDomProperty data = rootObject.property("data"); @@ -782,7 +782,7 @@ void tst_qdeclarativedom::object_property() QVERIFY(data.propertyNameParts().at(0) == "data"); QVERIFY(data.isDefaultProperty() == true); QVERIFY(data.value().isList()); - QCOMPARE(data.position(), 45); + QCOMPARE(data.position(), 50); QCOMPARE(data.length(), 0); } } @@ -798,7 +798,7 @@ void tst_qdeclarativedom::object_url() // Valid builtin object { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {}"; QDeclarativeDomDocument document; @@ -811,7 +811,7 @@ void tst_qdeclarativedom::object_url() // Valid composite object { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "MyItem {}"; QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml"); @@ -829,7 +829,7 @@ void tst_qdeclarativedom::object_url() // Test copy constructors and operators void tst_qdeclarativedom::copy() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "MyItem {\n" " id: myItem\n" " property int a: 10\n" @@ -1204,7 +1204,7 @@ void tst_qdeclarativedom::copy() // Tests the position/length of various elements void tst_qdeclarativedom::position() { - QByteArray qml = "import Qt 4.7\n" + QByteArray qml = "import QtQuick 1.0\n" "Item {\n" " id: myItem\n" " property int a: 10\n" @@ -1226,32 +1226,32 @@ void tst_qdeclarativedom::position() // All QDeclarativeDomDynamicProperty QDeclarativeDomDynamicProperty dynProp = root.dynamicProperty("a"); - QCOMPARE(dynProp.position(), 40); + QCOMPARE(dynProp.position(), 45); QCOMPARE(dynProp.length(), 18); // All QDeclarativeDomProperty QDeclarativeDomProperty x = root.property("x"); - QCOMPARE(x.position(), 63); + QCOMPARE(x.position(), 68); QCOMPARE(x.length(), 1); QDeclarativeDomProperty y = root.property("y"); - QCOMPARE(y.position(), 73); + QCOMPARE(y.position(), 78); QCOMPARE(y.length(), 1); QDeclarativeDomProperty z = root.property("z"); - QCOMPARE(z.position(), 106); + QCOMPARE(z.position(), 111); QCOMPARE(z.length(), 1); QDeclarativeDomProperty opacity = root.property("opacity"); - QCOMPARE(opacity.position(), 127); + QCOMPARE(opacity.position(), 132); QCOMPARE(opacity.length(), 7); QDeclarativeDomProperty data = root.property("data"); - QCOMPARE(data.position(), 142); + QCOMPARE(data.position(), 147); QCOMPARE(data.length(), 0); QDeclarativeDomProperty children = root.property("children"); - QCOMPARE(children.position(), 179); + QCOMPARE(children.position(), 184); QCOMPARE(children.length(), 8); QDeclarativeDomList dataList = data.value().toList(); @@ -1260,64 +1260,64 @@ void tst_qdeclarativedom::position() QCOMPARE(childrenList.values().count(), 2); // All QDeclarativeDomObject - QCOMPARE(root.position(), 14); + QCOMPARE(root.position(), 19); QCOMPARE(root.length(), 195); QDeclarativeDomObject numberAnimation = z.value().toValueSource().object(); - QCOMPARE(numberAnimation.position(), 87); + QCOMPARE(numberAnimation.position(), 92); QCOMPARE(numberAnimation.length(), 23); QDeclarativeDomObject behavior = opacity.value().toValueInterceptor().object(); - QCOMPARE(behavior.position(), 115); + QCOMPARE(behavior.position(), 120); QCOMPARE(behavior.length(), 22); QDeclarativeDomObject component = dataList.values().at(0).toObject(); - QCOMPARE(component.position(), 142); + QCOMPARE(component.position(), 147); QCOMPARE(component.length(), 32); QDeclarativeDomObject componentRoot = component.toComponent().componentRoot(); - QCOMPARE(componentRoot.position(), 162); + QCOMPARE(componentRoot.position(), 167); QCOMPARE(componentRoot.length(), 6); QDeclarativeDomObject child1 = childrenList.values().at(0).toObject(); - QCOMPARE(child1.position(), 191); + QCOMPARE(child1.position(), 196); QCOMPARE(child1.length(), 6); QDeclarativeDomObject child2 = childrenList.values().at(1).toObject(); - QCOMPARE(child2.position(), 199); + QCOMPARE(child2.position(), 204); QCOMPARE(child2.length(), 6); // All QDeclarativeDomValue QDeclarativeDomValue xValue = x.value(); - QCOMPARE(xValue.position(), 66); + QCOMPARE(xValue.position(), 71); QCOMPARE(xValue.length(), 2); QDeclarativeDomValue yValue = y.value(); - QCOMPARE(yValue.position(), 76); + QCOMPARE(yValue.position(), 81); QCOMPARE(yValue.length(), 6); QDeclarativeDomValue zValue = z.value(); - QCOMPARE(zValue.position(), 87); + QCOMPARE(zValue.position(), 92); QCOMPARE(zValue.length(), 23); QDeclarativeDomValue opacityValue = opacity.value(); - QCOMPARE(opacityValue.position(), 115); + QCOMPARE(opacityValue.position(), 120); QCOMPARE(opacityValue.length(), 22); QDeclarativeDomValue dataValue = data.value(); - QCOMPARE(dataValue.position(), 142); + QCOMPARE(dataValue.position(), 147); QCOMPARE(dataValue.length(), 32); QDeclarativeDomValue child1Value = childrenList.values().at(0); - QCOMPARE(child1Value.position(), 191); + QCOMPARE(child1Value.position(), 196); QCOMPARE(child1Value.length(), 6); QDeclarativeDomValue child2Value = childrenList.values().at(1); - QCOMPARE(child2Value.position(), 199); + QCOMPARE(child2Value.position(), 204); QCOMPARE(child2Value.length(), 6); // All QDeclarativeDomList - QCOMPARE(childrenList.position(), 189); + QCOMPARE(childrenList.position(), 194); QCOMPARE(childrenList.length(), 18); } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/CustomObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/CustomObject.qml index 170d027..4a42518 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/CustomObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/CustomObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string greeting: "hello world" diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/MethodsObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/MethodsObject.qml index e9a41ed..829d405 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/MethodsObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/MethodsObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function testFunction() { return 19; } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml index 6e50b10..f542c64 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int b: obj.prop.a diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml index fe0492f..df494af 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property int a: 3 diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml b/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml index e144de7..3427a3b 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property int children: root.children.length diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/aliasPropertyAndBinding.qml b/tests/auto/declarative/qdeclarativeecmascript/data/aliasPropertyAndBinding.qml index 515f80f..da6c795 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/aliasPropertyAndBinding.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/aliasPropertyAndBinding.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml index 1cd78a5..9443c01 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { Component.onCompleted: { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml b/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml index f31f142..c66ef69 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/bug.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/bug.1.qml index 88740dc..68dbcfa 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/bug.1.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/bug.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a: 10 diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml index 7530396..0f23297 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { objectProperty: MyQmlObject {} diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml index 1655905..58b7adb 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { //real diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/compositePropertyType.qml b/tests/auto/declarative/qdeclarativeecmascript/data/compositePropertyType.qml index 1dc0ada..1af77d5 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/compositePropertyType.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/compositePropertyType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property CustomObject myObject diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deferredPropertiesErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deferredPropertiesErrors.qml index 9c46c3f..18a57ba 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/deferredPropertiesErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/deferredPropertiesErrors.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyDeferredObject { value: undefined // error is resolved before complete diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml index 6d23e5f7..131fa6f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml index 6fc1211..4de405d 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function calculate() { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml index 2337e44..7ba51ef 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/eval.qml b/tests/auto/declarative/qdeclarativeecmascript/data/eval.qml index aab39be..661cd5c 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/eval.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/eval.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test1: false; diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning.qml b/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning.qml index 14046f0..2102821 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning2.qml index 146f6f1..c197ef8 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/extendedObjectPropertyLookup.qml b/tests/auto/declarative/qdeclarativeecmascript/data/extendedObjectPropertyLookup.qml index dc78cd8..9738d2c 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/extendedObjectPropertyLookup.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/extendedObjectPropertyLookup.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property MyExtendedObject a; diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml index c57e5f8..b0e897e 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyExtendedObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/function.qml b/tests/auto/declarative/qdeclarativeecmascript/data/function.qml index 80d6ef4..6cd8751 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/function.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/function.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test1: false; diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml index a893fb0..2ba02d1 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function myFunction() { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml index e3b29ae..6dcdefc 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { objectProperty: if(1) otherObject diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml index 4746f3f..32b8611 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { objectProperty: otherObject diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/in.qml b/tests/auto/declarative/qdeclarativeecmascript/data/in.qml index 0b5b0ba..f9cccb5 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/in.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/in.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include.qml index 18543b2..61b0461 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include.js" as IncludeTest QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include_callback.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include_callback.qml index a39e821..1633eba 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include_callback.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include_callback.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include_callback.js" as IncludeTest QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include_pragma.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include_pragma.qml index 67b8cfd..a6489694 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include_pragma.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include_pragma.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include_pragma_outer.js" as Script Item { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include_remote.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include_remote.qml index 06bd174..0dfc74f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include_remote.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include_remote.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include_remote.js" as IncludeTest QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.qml index 8e486b2..05a7399 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include_remote_missing.js" as IncludeTest QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/include_shared.qml b/tests/auto/declarative/qdeclarativeecmascript/data/include_shared.qml index e957018..e9f1c89 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/include_shared.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/include_shared.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "include_shared.js" as IncludeTest QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml index d5d3329..6ab25f2 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml index 29d7d01..87b2d7e 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/jsObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/jsObject.qml index fb4fa4d..e93007a 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/jsObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/jsObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int test diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml index a945a16..c078942 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "libraryScriptAssert.js" as Test QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml b/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml index 3ba4183..7b94075 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml b/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml index 697530f..7940ab8 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test: children diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/methods.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/methods.3.qml index 269bd83..1090b48 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/methods.3.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/methods.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function testFunction() { return 19; } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/methods.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/methods.4.qml index 2ea9cdb..34c50d6 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/methods.4.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/methods.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 MethodsObject { function testFunction2() { return 17; } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml b/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml index 0065add..bebdf3d 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property alias blah: item.x diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/multiEngineObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/multiEngineObject.qml index a8cb50e..d9c63e6 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/multiEngineObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/multiEngineObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string test: thing.stringProperty diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml index 8be2d5b..9e0bcf0 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml index daa9b0b..7e7da8d 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml b/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml index 024d82e..e86cc96 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml b/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml index 11472a0..cbd2d3e 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property QtObject test diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml b/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml index 4b51109..ef0e304 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml b/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml index 231c9e5..53427b7 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { Component.onCompleted: { var a = getObject(); a = null; } diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml index bef40fd..a778dcc 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml index 22c4f0b..2e9e173 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int test: getObjects().length diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml index cb5c4c9..02357d4 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string test: "aaaa" diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.qml index 56e7885..b7bb366 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "qtbug_11600.js" as Test QtObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11606.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11606.qml index 6efb9c1..05c482c 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11606.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11606.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtcreatorbug_1289.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtcreatorbug_1289.qml index b6d31d5..e531efc 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/qtcreatorbug_1289.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtcreatorbug_1289.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml index d4d7eb2..95f34d8 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property int a: 0 diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml index 2548005..0b0770e 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml index 7f895ff..63dba2f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml index 5d8e29e..65697d9 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptConnect.1.js" as Script MyQmlObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml index 5681907..86ff798 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptConnect.2.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml index 40d8079..db2f005 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml index 0356650..a2d90ff 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml index 661f28e..21fac15 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml index 36655ee..4053091 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptConnect.6.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml index 0cb4d79..bbe7024 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptDisconnect.1.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml index 05ca7a4..8a166f4 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptDisconnect.1.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml index 2a66bed..548f2a1 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptDisconnect.1.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml index 7beb84e..11b22d7 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "scriptDisconnect.1.js" as Script MyQmlObject { diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml index 817391d..2d090b8 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/shutdownErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/shutdownErrors.qml index 823096b..7a6aba7 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/shutdownErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/shutdownErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property int test: myObject.object.a diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/signalTriggeredBindings.qml b/tests/auto/declarative/qdeclarativeecmascript/data/signalTriggeredBindings.qml index a2fb4d0..8410d33 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/signalTriggeredBindings.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/signalTriggeredBindings.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property real base: 50 diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml b/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml index ec49a95..2932c778 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test1: (a === true) diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.2.qml index a36b4c0..1e5afdf 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml index 26d9596..60d39fa 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant obj: nested diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml b/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml index 46e18e5..849dfad 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool runTest: false diff --git a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp index 56ebd73..092c83e 100644 --- a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp +++ b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp @@ -200,7 +200,7 @@ void tst_qdeclarativeengine::clearComponentCache() { QFile file("temp.qml"); QVERIFY(file.open(QIODevice::WriteOnly)); - file.write("import Qt 4.7\nQtObject {\nproperty int test: 10\n}\n"); + file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 10\n}\n"); file.close(); } @@ -217,7 +217,7 @@ void tst_qdeclarativeengine::clearComponentCache() { QFile file("temp.qml"); QVERIFY(file.open(QIODevice::WriteOnly)); - file.write("import Qt 4.7\nQtObject {\nproperty int test: 11\n}\n"); + file.write("import QtQuick 1.0\nQtObject {\nproperty int test: 11\n}\n"); file.close(); } @@ -256,7 +256,7 @@ void tst_qdeclarativeengine::outputWarningsToStandardError() QCOMPARE(engine.outputWarningsToStandardError(), true); QDeclarativeComponent c(&engine); - c.setData("import Qt 4.7; QtObject { property int a: undefined }", QUrl()); + c.setData("import QtQuick 1.0; QtObject { property int a: undefined }", QUrl()); QVERIFY(c.isReady() == true); @@ -313,7 +313,7 @@ void tst_qdeclarativeengine::objectOwnership() { QDeclarativeEngine engine; QDeclarativeComponent c(&engine); - c.setData("import Qt 4.7; QtObject { property QtObject object: QtObject {} }", QUrl()); + c.setData("import QtQuick 1.0; QtObject { property QtObject object: QtObject {} }", QUrl()); QObject *o = c.create(); QVERIFY(o != 0); diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickable01.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickable01.qml index 45272e3..c53ae3f 100644 --- a/tests/auto/declarative/qdeclarativeflickable/data/flickable01.qml +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickable01.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flickable { } diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickable02.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickable02.qml index 2550fcc..98925ae 100644 --- a/tests/auto/declarative/qdeclarativeflickable/data/flickable02.qml +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickable02.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flickable { width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickable03.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickable03.qml index 27fe653..a3e92fe 100644 --- a/tests/auto/declarative/qdeclarativeflickable/data/flickable03.qml +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickable03.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flickable { width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickable04.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickable04.qml index a840a01..fcc683a 100644 --- a/tests/auto/declarative/qdeclarativeflickable/data/flickable04.qml +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickable04.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flickable { property bool ok: false diff --git a/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml b/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml index 8e95a94..6cbf12c 100644 --- a/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml +++ b/tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flickable { width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp index e7ded8a..25edb36 100644 --- a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp +++ b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp @@ -162,7 +162,7 @@ void tst_qdeclarativeflickable::properties() void tst_qdeclarativeflickable::boundsBehavior() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Flickable { boundsBehavior: Flickable.StopAtBounds }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Flickable { boundsBehavior: Flickable.StopAtBounds }", QUrl::fromLocalFile("")); QDeclarativeFlickable *flickable = qobject_cast(component.create()); QSignalSpy spy(flickable, SIGNAL(boundsBehaviorChanged())); @@ -191,7 +191,7 @@ void tst_qdeclarativeflickable::boundsBehavior() void tst_qdeclarativeflickable::maximumFlickVelocity() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile("")); QDeclarativeFlickable *flickable = qobject_cast(component.create()); QSignalSpy spy(flickable, SIGNAL(maximumFlickVelocityChanged())); @@ -208,7 +208,7 @@ void tst_qdeclarativeflickable::maximumFlickVelocity() void tst_qdeclarativeflickable::flickDeceleration() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile("")); QDeclarativeFlickable *flickable = qobject_cast(component.create()); QSignalSpy spy(flickable, SIGNAL(flickDecelerationChanged())); @@ -225,7 +225,7 @@ void tst_qdeclarativeflickable::flickDeceleration() void tst_qdeclarativeflickable::pressDelay() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Flickable { pressDelay: 100; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Flickable { pressDelay: 100; }", QUrl::fromLocalFile("")); QDeclarativeFlickable *flickable = qobject_cast(component.create()); QSignalSpy spy(flickable, SIGNAL(pressDelayChanged())); @@ -242,7 +242,7 @@ void tst_qdeclarativeflickable::pressDelay() void tst_qdeclarativeflickable::flickableDirection() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Flickable { flickableDirection: Flickable.VerticalFlick; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Flickable { flickableDirection: Flickable.VerticalFlick; }", QUrl::fromLocalFile("")); QDeclarativeFlickable *flickable = qobject_cast(component.create()); QSignalSpy spy(flickable, SIGNAL(flickableDirectionChanged())); diff --git a/tests/auto/declarative/qdeclarativeflipable/data/crash.qml b/tests/auto/declarative/qdeclarativeflipable/data/crash.qml index fb369a6..bc5229b 100644 --- a/tests/auto/declarative/qdeclarativeflipable/data/crash.qml +++ b/tests/auto/declarative/qdeclarativeflipable/data/crash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flipable { transform: Rotation { diff --git a/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml b/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml index 41463fe..69ff4a2 100644 --- a/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml +++ b/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { Flipable { diff --git a/tests/auto/declarative/qdeclarativeflipable/data/test-flipable.qml b/tests/auto/declarative/qdeclarativeflipable/data/test-flipable.qml index 5ddf09d..02b69e0 100644 --- a/tests/auto/declarative/qdeclarativeflipable/data/test-flipable.qml +++ b/tests/auto/declarative/qdeclarativeflipable/data/test-flipable.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Flipable { id: flipable diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml index 42b50cf..a40bc2c 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml index 9144854..708e899 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 600 diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml index 07601c7..5850791 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml index 55be103..5983c19 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml index 5ed701d..8c0b3b4 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml index c6d112f..2e025cb 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml index 3c6d3bd..7192dee 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml index 4417d5f..01dada5 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml +++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp index 8765426..158ee51 100644 --- a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp +++ b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp @@ -87,7 +87,7 @@ tst_qdeclarativefontloader::tst_qdeclarativefontloader() : void tst_qdeclarativefontloader::noFont() { - QString componentStr = "import Qt 4.7\nFontLoader { }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeFontLoader *fontObject = qobject_cast(component.create()); @@ -102,7 +102,7 @@ void tst_qdeclarativefontloader::noFont() void tst_qdeclarativefontloader::namedFont() { - QString componentStr = "import Qt 4.7\nFontLoader { name: \"Helvetica\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { name: \"Helvetica\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeFontLoader *fontObject = qobject_cast(component.create()); @@ -115,7 +115,7 @@ void tst_qdeclarativefontloader::namedFont() void tst_qdeclarativefontloader::localFont() { - QString componentStr = "import Qt 4.7\nFontLoader { source: \"" SRCDIR "/data/tarzeau_ocr_a.ttf\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: \"" SRCDIR "/data/tarzeau_ocr_a.ttf\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeFontLoader *fontObject = qobject_cast(component.create()); @@ -128,7 +128,7 @@ void tst_qdeclarativefontloader::localFont() void tst_qdeclarativefontloader::failLocalFont() { - QString componentStr = "import Qt 4.7\nFontLoader { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" }"; QTest::ignoreMessage(QtWarningMsg, QString("file::2:1: QML FontLoader: Cannot load font: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\"").toUtf8().constData()); QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -142,7 +142,7 @@ void tst_qdeclarativefontloader::failLocalFont() void tst_qdeclarativefontloader::webFont() { - QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/tarzeau_ocr_a.ttf\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: \"http://localhost:14448/tarzeau_ocr_a.ttf\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -158,7 +158,7 @@ void tst_qdeclarativefontloader::redirWebFont() { server.addRedirect("olddir/oldname.ttf","../tarzeau_ocr_a.ttf"); - QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/olddir/oldname.ttf\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: \"http://localhost:14448/olddir/oldname.ttf\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -172,7 +172,7 @@ void tst_qdeclarativefontloader::redirWebFont() void tst_qdeclarativefontloader::failWebFont() { - QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/nonexist.ttf\" }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: \"http://localhost:14448/nonexist.ttf\" }"; QTest::ignoreMessage(QtWarningMsg, "file::2:1: QML FontLoader: Cannot load font: \"http://localhost:14448/nonexist.ttf\""); QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -186,7 +186,7 @@ void tst_qdeclarativefontloader::failWebFont() void tst_qdeclarativefontloader::changeFont() { - QString componentStr = "import Qt 4.7\nFontLoader { source: font }"; + QString componentStr = "import QtQuick 1.0\nFontLoader { source: font }"; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty("font", QUrl::fromLocalFile(SRCDIR "/data/tarzeau_ocr_a.ttf")); QDeclarativeComponent component(&engine); diff --git a/tests/auto/declarative/qdeclarativegridview/data/displaygrid.qml b/tests/auto/declarative/qdeclarativegridview/data/displaygrid.qml index 9c3c847..93f39ff 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/displaygrid.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/displaygrid.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativegridview/data/footer.qml b/tests/auto/declarative/qdeclarativegridview/data/footer.qml index 170b2b5..ad69a25 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/footer.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/footer.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml index 2fe173f..5719f43 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml index a5d651d..421f810 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property int current: grid.currentIndex diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml index 3d826dd..77c94ba 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview2.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview2.qml index 772255d..7559a7f 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/gridview2.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 GridView { anchors.fill: parent diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview3.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview3.qml index f108e3d..ab4ceeb 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/gridview3.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 GridView { anchors.fill: parent diff --git a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml index 510fcc5..7bb2c95 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { diff --git a/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml b/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml index 8e4e178..10df234 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 360; height: 120; color: "white" diff --git a/tests/auto/declarative/qdeclarativegridview/data/setindex.qml b/tests/auto/declarative/qdeclarativegridview/data/setindex.qml index 93ef69b..36bf67d 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/setindex.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/setindex.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp index 5fd373c..975cf8f 100644 --- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp +++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp @@ -852,10 +852,10 @@ void tst_QDeclarativeGridView::componentChanges() QTRY_VERIFY(gridView); QDeclarativeComponent component(canvas->engine()); - component.setData("import Qt 4.7; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile("")); QDeclarativeComponent delegateComponent(canvas->engine()); - delegateComponent.setData("import Qt 4.7; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); + delegateComponent.setData("import QtQuick 1.0; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); QSignalSpy highlightSpy(gridView, SIGNAL(highlightChanged())); QSignalSpy delegateSpy(gridView, SIGNAL(delegateChanged())); diff --git a/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml b/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml index 402d33e..739299d 100644 --- a/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml +++ b/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Image { source: "heart.png" diff --git a/tests/auto/declarative/qdeclarativeimage/data/tiling.qml b/tests/auto/declarative/qdeclarativeimage/data/tiling.qml index 32839bb..49715ab 100644 --- a/tests/auto/declarative/qdeclarativeimage/data/tiling.qml +++ b/tests/auto/declarative/qdeclarativeimage/data/tiling.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 600 diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp index 2686127..6fce2ad 100644 --- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp +++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp @@ -97,7 +97,7 @@ tst_qdeclarativeimage::tst_qdeclarativeimage() void tst_qdeclarativeimage::noSource() { - QString componentStr = "import Qt 4.7\nImage { source: \"\" }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -154,7 +154,7 @@ void tst_qdeclarativeimage::imageSource() if (!error.isEmpty()) QTest::ignoreMessage(QtWarningMsg, error.toUtf8()); - QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; asynchronous: " + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + source + "\"; asynchronous: " + (async ? QLatin1String("true") : QLatin1String("false")) + " }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -184,7 +184,7 @@ void tst_qdeclarativeimage::imageSource() void tst_qdeclarativeimage::clearSource() { - QString componentStr = "import Qt 4.7\nImage { source: srcImage }"; + QString componentStr = "import QtQuick 1.0\nImage { source: srcImage }"; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png")); QDeclarativeComponent component(&engine); @@ -206,7 +206,7 @@ void tst_qdeclarativeimage::clearSource() void tst_qdeclarativeimage::resized() { - QString componentStr = "import Qt 4.7\nImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -241,7 +241,7 @@ void tst_qdeclarativeimage::preserveAspectRatio() void tst_qdeclarativeimage::smooth() { - QString componentStr = "import Qt 4.7\nImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -257,7 +257,7 @@ void tst_qdeclarativeimage::smooth() void tst_qdeclarativeimage::svg() { QString src = QUrl::fromLocalFile(SRCDIR "/data/heart.svg").toString(); - QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; sourceSize.width: 300; sourceSize.height: 300 }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + src + "\"; sourceSize.width: 300; sourceSize.height: 300 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -292,7 +292,7 @@ void tst_qdeclarativeimage::big() // have to build a 400 MB image. That would be a bug in the JPEG loader. QString src = QUrl::fromLocalFile(SRCDIR "/data/big.jpeg").toString(); - QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; width: 100; sourceSize.height: 256 }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + src + "\"; width: 100; sourceSize.height: 256 }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -354,7 +354,7 @@ void tst_qdeclarativeimage::noLoading() server.serveDirectory(SRCDIR "/data"); server.addRedirect("oldcolors.png", SERVER_ADDR "/colors.png"); - QString componentStr = "import Qt 4.7\nImage { source: srcImage }"; + QString componentStr = "import QtQuick 1.0\nImage { source: srcImage }"; QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/heart.png")); QDeclarativeComponent component(&engine); diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp index d38160d..cd12e3a 100644 --- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp +++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp @@ -192,7 +192,7 @@ void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvide engine.addImageProvider("test", provider); QVERIFY(engine.imageProvider("test") != 0); - QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; " + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + source + "\"; " + (async ? "asynchronous: true; " : "") + properties + " }"; QDeclarativeComponent component(&engine); @@ -271,7 +271,7 @@ void tst_qdeclarativeimageprovider::requestPixmap_async() QVERIFY(engine.imageProvider("test") != 0); // pixmaps are loaded synchronously regardless of 'asynchronous' value - QString componentStr = "import Qt 4.7\nImage { asynchronous: true; source: \"image://test/pixmap-async-test.png\" }"; + QString componentStr = "import QtQuick 1.0\nImage { asynchronous: true; source: \"image://test/pixmap-async-test.png\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -298,7 +298,7 @@ void tst_qdeclarativeimageprovider::removeProvider() QVERIFY(engine.imageProvider("test") != 0); // add provider, confirm it works - QString componentStr = "import Qt 4.7\nImage { source: \"" + newImageFileName() + "\" }"; + QString componentStr = "import QtQuick 1.0\nImage { source: \"" + newImageFileName() + "\" }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeImage *obj = qobject_cast(component.create()); @@ -359,7 +359,7 @@ void tst_qdeclarativeimageprovider::threadTest() engine.addImageProvider("test_thread", provider); QVERIFY(engine.imageProvider("test_thread") != 0); - QString componentStr = "import Qt 4.7\nItem { \n" + QString componentStr = "import QtQuick 1.0\nItem { \n" "Image { source: \"image://test_thread/blue\"; asynchronous: true; }\n" "Image { source: \"image://test_thread/red\"; asynchronous: true; }\n" "Image { source: \"image://test_thread/green\"; asynchronous: true; }\n" diff --git a/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml index 30e8274..a2afb61 100644 --- a/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml +++ b/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant nested diff --git a/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml index 9bd8571..f3516c6 100644 --- a/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml +++ b/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant nested diff --git a/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml index 9bb6be7..937cd64 100644 --- a/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml +++ b/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant nested diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml index 5958004..fab2367 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRect.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRect.qml index f351b53..84f362f 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenRect.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug.qml index 4a2f056..2ab73a1 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug2.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug2.qml index 225d8d4..d67ad0e 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug2.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width:360; diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml index 54b5b68..9d8e1e8 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300 diff --git a/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml index 87e64c5..229f969 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Grid { columns: 2 diff --git a/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml b/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml index 171536b..375a6b6 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Test 1.0 KeyTestItem { diff --git a/tests/auto/declarative/qdeclarativeitem/data/keystest.qml b/tests/auto/declarative/qdeclarativeitem/data/keystest.qml index 8ff3e87..aedccd9 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/keystest.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/keystest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { focus: true diff --git a/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml b/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml index 4a92e9d..bb20ecc 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root; objectName: "root" diff --git a/tests/auto/declarative/qdeclarativeitem/data/mouseFocus.qml b/tests/auto/declarative/qdeclarativeitem/data/mouseFocus.qml index a562b8b..afa5397 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/mouseFocus.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/mouseFocus.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QGraphicsWidget { size: "200x100" diff --git a/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml b/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml index dd86453..f1ea933 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Item { diff --git a/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml b/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml index 852f242..e82cd02 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp index 25ca157..00fcb6a 100644 --- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp +++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp @@ -434,7 +434,7 @@ void tst_QDeclarativeItem::keyNavigation() void tst_QDeclarativeItem::smooth() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7; Item { smooth: false; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Item { smooth: false; }", QUrl::fromLocalFile("")); QDeclarativeItem *item = qobject_cast(component.create()); QSignalSpy spy(item, SIGNAL(smoothChanged(bool))); @@ -463,7 +463,7 @@ void tst_QDeclarativeItem::smooth() void tst_QDeclarativeItem::clip() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nItem { clip: false\n }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nItem { clip: false\n }", QUrl::fromLocalFile("")); QDeclarativeItem *item = qobject_cast(component.create()); QSignalSpy spy(item, SIGNAL(clipChanged(bool))); @@ -570,7 +570,7 @@ void tst_QDeclarativeItem::transforms() QFETCH(QByteArray, qml); QFETCH(QMatrix, matrix); QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nItem { transform: "+qml+"}", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nItem { transform: "+qml+"}", QUrl::fromLocalFile("")); QDeclarativeItem *item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(item->sceneMatrix(), matrix); diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml index deb84a8..6a33def 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml index db205f1..919f5d8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant other diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml index 04f5ba3..3f73538 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property alias obj : otherObj diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml index 80414ac..428790d 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 Alias3 {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml b/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml index 4c78cd7..9349a93 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml index 61e6146..cf32b45 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml index 0275e21..0687ce3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml b/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml index 9746ab0..5de8a4a 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int super_a: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml index 23d6ed9..3a7022b 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant child diff --git a/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml b/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml index 8c953cb..f63283e 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml b/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml index fdf4800..8aaddac 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property QtObject o1 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml b/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml index ee02335..0ba4bd6 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { x: "You can't assign a string to a real!" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml b/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml index 5373959..c2ac5c8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property int a: Math.max(10, 9) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml b/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml index d5c6979..c3d0e1e 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { property int a: Math.max(10, 9) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml index 291d47a..44167af 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml index 787eb77..7e5559a 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant other diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml index bbd1901..0c839ee 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Test 1.0 QtObject { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml index 2d99b64..663e8d0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property QtObject o; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml index 4ceff3d..ec5536e 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property QtObject object diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml index 5bf8702..d480611 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant other diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml index b8c71e1..0a49ad5 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant other diff --git a/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml index 59afe58..f04b1f6 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml index 1009df7..ed214ff 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Test 1.0 QtObject { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml index bac704e..ab6f3df 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: 1 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml index 2b1ef76..aab7ed2 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant a; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml index 2f49418..3cde2e8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml @@ -1,4 +1,4 @@ -import Qt 4.7 as Qt47 +import QtQuick 1.0 as Qt47 Qt47.QtObject { Qt47: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml index 3a78170..1e93225 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml @@ -1,6 +1,6 @@ import Test 1.0 import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { MyQmlObject.value: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml index 730fffd..f4f66dd 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml index 7e7dd0f..7d677b5 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: myId diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml index f0d5f71..1b9af8b 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Component { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml index 521adbc..806613c 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml index 9c3938b..e94022a 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { x: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml index 9208722..8f81a5a 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.6.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { id: QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml index b81e0c3..94bf189 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { property int a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml index 0b00890..69990ca 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { signal a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml index c5f93c9..5db9815 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Component { function a() {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml index 725069e..d04da62 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test diff --git a/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml b/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml index f11abd9..6ac71ee 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/crash2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { objectName: "Hello" + "World" diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml index 438e8e9..c1e4790 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int on diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml index 902b598..50bc2ae 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { a: 10 } ListElement { id: foo; a: 12 } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml index 3230e49..4cf6827 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListModel { ListElement { a: 10 } ListElement { a: 12 } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml b/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml index c241861..f15373f 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml index 0cd0338..d98dfdb 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { grouped { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml b/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml index b4203b5..87dc3d3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyContainer { QtObject { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml index 54d080a..ba65d78 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { onDestroyed: print("Hello World!") diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml b/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml index df048cc..0cdbdd7 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property QtObject object: DontDoubleCallClassBeginItem {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml index c0ed52c..2b6dd5d 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { default property QtObject a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml index 1f46b96..7d11d99 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml index cf49062..b0f2828 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml index a14ec4c..e28cad3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function a() {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml index ea77cfd..8e4acc0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property UnknownType a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml index a1be43a..cdad72b 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyCustomParserType { propa: a + 10 propb: Math.min(a, 10) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.2.qml index df3de20..c03ec49 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.2.qml @@ -1,5 +1,5 @@ -import Qt 4.7 -import Qt 4.7 as Qt47 +import QtQuick 1.0 +import QtQuick 1.0 as Qt47 Qt.QtObject { property Qt47.QtObject objectProperty diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml index c997356..ed25c4b 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml @@ -1,6 +1,6 @@ import Test 1.0 -import Qt 4.7 -import Qt 4.7 as Qt47 +import QtQuick 1.0 +import QtQuick 1.0 as Qt47 QtObject { property QtObject objectProperty diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml index 6bcae0f..782adef 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { default property int intProperty : 10 property bool boolProperty: false diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml index cceb44b..64848fe 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 DynamicPropertiesNestedType { property int a: 13 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml index 9aa5e86..78978db 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal signal1 function slot1() {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml index 6b5b451..3eda661 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Font { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml index 3b80f0b..39e3846 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml @@ -1,4 +1,4 @@ import Test 1.0 as Rectangle -import Qt 4.7 +import QtQuick 1.0 Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml index 483cfec..9589692 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml @@ -1,5 +1,5 @@ // imports... import "will-not-be-found" -import Qt 4.7 +import QtQuick 1.0 Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml b/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml index 1ebec1b..a52bd23 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyContainer { Component { id: myComponent diff --git a/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml index 6a47536..444e234 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { interfaceProperty: MyQmlObject {} } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml index 985fb94..13bdb12 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property alias a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml index a2ac91c..b6378c3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property alias a: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml index 84d39df..c6dc44c 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MyQmlObject.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml index 40e3926..4942c21 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml @@ -1,5 +1,5 @@ import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { Namespace.MadeUpClass.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml index 28f8220..e1fc8c1 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml @@ -1,5 +1,5 @@ import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { Namespace.madeUpClass.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml index f45f88f..6938122 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml @@ -1,5 +1,5 @@ import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { Namespace.MyQmlObject.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml index 64bc8bd..842600f 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MyQmlObject: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml index ee3dedb..6f372a6 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml @@ -1,5 +1,5 @@ import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { Namespace.MyQmlObject: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml index 66cad2d..07eb6f3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MyQmlObject: QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml index 90d80bc..b725674 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { Test.MyQmlObject: QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml index 5293d55..50004ed 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MyTypeObject.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml index 6f319c1..7cdf5cd 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml @@ -1,5 +1,5 @@ import Test 1.0 as Namespace -import Qt 4.7 +import QtQuick 1.0 QtObject { Namespace.MyTypeObject.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml index b7e1302..503e9fa 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MadeUpClass.foo: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml index 671f5ab..94afb16 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant o; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml index f897cc8..d4fbf42 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int o; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt index a65f5fd..034e937 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt @@ -1 +1 @@ -2:18:Invalid import qualifier ID +2:23:Invalid import qualifier ID diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml index 00fc81b..580a0f3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml @@ -1,4 +1,4 @@ -import Qt 4.7 -import Qt 4.7 as qt +import QtQuick 1.0 +import QtQuick 1.0 as qt QtObject {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.qml index 6077de4..bd26bc5 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int parseInt diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml index 303b5a5..9985d33 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml @@ -1,2 +1,2 @@ -import Qt 4.7 as Qt47 +import QtQuick 1.0 as Qt47 Qt47.Rectangle {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml index 8c953cb..f63283e 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml index d09dea7..7f491eb 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml index 62e41a9..03bf25b 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Image {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml index 303b5a5..9985d33 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml @@ -1,2 +1,2 @@ -import Qt 4.7 as Qt47 +import QtQuick 1.0 as Qt47 Qt47.Rectangle {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml index 8c953cb..f63283e 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml index 6c628e4..c02dd33 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyContainer { containerChildren: QtObject {} } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml b/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml index 0393382..85abbdc 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { ListModel { diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml index 3027722..1f60951 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property list listProperty diff --git a/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml index a2d8799..a3f97f8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function MyMethod() {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml index 1a417a9..e0e8442 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { onClicked: console.log("Hello world!") } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml index 0aa3405..bbd05a1 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { NestedErrorsType {} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml index 077abe1..548b7b8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Keys { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml b/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml index 71a7d26..e75f904 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { // We set a and b to ensure that onCompleted is executed after bindings and diff --git a/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml b/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml index 1b1eef9..77fe2ff 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { // We set a and b to ensure that onCompleted is executed after bindings and diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml index b3384d4..0b46ceb 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property blah a; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml index 1ba9b17..3ff1686 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property invalidmodifier a; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml index 261e7e3..b219120 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property invalidmodifier a; diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml index 0a0f969..bfadc9d 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { readonly property int a diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml index 0340f79..1bb4850 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { readonly property int a: value diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml index aad9e07..b5b3f42 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int Hello diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml index 0246b2f..f9ec68a 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int Hello: 10 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml index d038ba3..dea52c9 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml index 1eab9f6..18c65c3 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { MyQmlObject.value: 10 } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml index cfe255a..c70a55c 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant child diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml index 63fd74f..7d1a9db 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal mySignal(nontype a) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml index c11ce17..e7780a0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal mySignal(,) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml index 771ea50..4289bce 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal mySignal(a) diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml index 37c938a..6ce417d 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { signal MySignal diff --git a/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml b/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml index 1421361..0b054d0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml index 1421361..0b054d0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml b/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml index e7aaf16..cc3f1c2 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int notifyCount: 0 diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml index 1ddccc0..0699d67 100644 --- a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml +++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyQmlObject { qmlobjectProperty: QtObject {} } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml index d5a61ae..289cd21 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml index 1421361..0b054d0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml @@ -1,2 +1,2 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml index d5a61ae..289cd21 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Image { source: "pics/blue.png" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml index 43aeb74..76d11dc 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml +++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Text {} diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp index 37e074b..ca7668d 100644 --- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -1385,12 +1385,12 @@ void tst_qdeclarativelanguage::importsLocal_data() << "QDeclarativeRectangle" << ""; QTest::newRow("local import second") - << "import Qt 4.7\nimport \"subdir\"\n" + << "import QtQuick 1.0\nimport \"subdir\"\n" "Test {}" << "QDeclarativeRectangle" << ""; QTest::newRow("local import subsubdir") - << "import Qt 4.7\nimport \"subdir/subsubdir\"\n" + << "import QtQuick 1.0\nimport \"subdir/subsubdir\"\n" "SubTest {}" << "QDeclarativeRectangle" << ""; @@ -1604,24 +1604,24 @@ void tst_qdeclarativelanguage::importsOrder_data() QTest::newRow("installed import versus builtin 1") << "import com.nokia.installedtest 1.5\n" - "import Qt 4.7\n" + "import QtQuick 1.0\n" "Rectangle {}" << (!qmlCheckTypes()?"QDeclarativeRectangle":"") << (!qmlCheckTypes()?"":"Rectangle is ambiguous. Found in Qt and in lib/com/nokia/installedtest"); QTest::newRow("installed import versus builtin 2") << - "import Qt 4.7\n" + "import QtQuick 1.0\n" "import com.nokia.installedtest 1.5\n" "Rectangle {}" << (!qmlCheckTypes()?"QDeclarativeText":"") << (!qmlCheckTypes()?"":"Rectangle is ambiguous. Found in lib/com/nokia/installedtest and in Qt"); QTest::newRow("namespaces cannot be overridden by types 1") << - "import Qt 4.7 as Rectangle\n" + "import QtQuick 1.0 as Rectangle\n" "import com.nokia.installedtest 1.5\n" "Rectangle {}" << "" << "Namespace Rectangle cannot be used as a type"; QTest::newRow("namespaces cannot be overridden by types 2") << - "import Qt 4.7 as Rectangle\n" + "import QtQuick 1.0 as Rectangle\n" "import com.nokia.installedtest 1.5\n" "Rectangle.Image {}" << "QDeclarativeImage" @@ -1676,7 +1676,7 @@ void tst_qdeclarativelanguage::qmlAttachedPropertiesObjectMethod() void tst_qdeclarativelanguage::crash1() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nComponent {}", QUrl()); + component.setData("import QtQuick 1.0\nComponent {}", QUrl()); } void tst_qdeclarativelanguage::crash2() diff --git a/tests/auto/declarative/qdeclarativelayoutitem/data/layoutItem.qml b/tests/auto/declarative/qdeclarativelayoutitem/data/layoutItem.qml index ee881a2..3497133 100644 --- a/tests/auto/declarative/qdeclarativelayoutitem/data/layoutItem.qml +++ b/tests/auto/declarative/qdeclarativelayoutitem/data/layoutItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 LayoutItem {//Sized by the layout id: resizable diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml b/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml index 296cb9c..93697f3 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml +++ b/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property string result diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/model.qml b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml index f8a9175..bfd547e 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/data/model.qml +++ b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: item diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/multipleroles.qml b/tests/auto/declarative/qdeclarativelistmodel/data/multipleroles.qml index b8f2f32..cc6d9de 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/data/multipleroles.qml +++ b/tests/auto/declarative/qdeclarativelistmodel/data/multipleroles.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { width: 100 height: 250 @@ -22,4 +22,4 @@ ListView { rounded: false } } -} \ No newline at end of file +} diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp index f8d2411..be77f8e 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp +++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp @@ -150,7 +150,7 @@ void tst_qdeclarativelistmodel::static_i18n() { QString expect = QString::fromUtf8("na\303\257ve"); - QString componentStr = "import Qt 4.7\nListModel { ListElement { prop1: \""+expect+"\"; prop2: QT_TR_NOOP(\""+expect+"\") } }"; + QString componentStr = "import QtQuick 1.0\nListModel { ListElement { prop1: \""+expect+"\"; prop2: QT_TR_NOOP(\""+expect+"\") } }"; QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(componentStr.toUtf8(), QUrl::fromLocalFile("")); @@ -173,7 +173,7 @@ void tst_qdeclarativelistmodel::static_nestedElements() QString elementsStr = elements.join(",\n") + "\n"; QString componentStr = - "import Qt 4.7\n" + "import QtQuick 1.0\n" "ListModel {\n" " ListElement {\n" " attributes: [\n"; @@ -550,7 +550,7 @@ void tst_qdeclarativelistmodel::static_types() QFETCH(QString, qml); QFETCH(QVariant, value); - qml = "import Qt 4.7\nListModel { " + qml + " }"; + qml = "import QtQuick 1.0\nListModel { " + qml + " }"; QDeclarativeEngine engine; QDeclarativeComponent component(&engine); @@ -599,47 +599,47 @@ void tst_qdeclarativelistmodel::error_data() QTest::addColumn("error"); QTest::newRow("id not allowed in ListElement") - << "import Qt 4.7\nListModel { ListElement { id: fred } }" + << "import QtQuick 1.0\nListModel { ListElement { id: fred } }" << "ListElement: cannot use reserved \"id\" property"; QTest::newRow("id allowed in ListModel") - << "import Qt 4.7\nListModel { id:model }" + << "import QtQuick 1.0\nListModel { id:model }" << ""; QTest::newRow("random properties not allowed in ListModel") - << "import Qt 4.7\nListModel { foo:123 }" + << "import QtQuick 1.0\nListModel { foo:123 }" << "ListModel: undefined property 'foo'"; QTest::newRow("random properties allowed in ListElement") - << "import Qt 4.7\nListModel { ListElement { foo:123 } }" + << "import QtQuick 1.0\nListModel { ListElement { foo:123 } }" << ""; QTest::newRow("bindings not allowed in ListElement") - << "import Qt 4.7\nRectangle { id: rect; ListModel { ListElement { foo: rect.color } } }" + << "import QtQuick 1.0\nRectangle { id: rect; ListModel { ListElement { foo: rect.color } } }" << "ListElement: cannot use script for property value"; QTest::newRow("random object list properties allowed in ListElement") - << "import Qt 4.7\nListModel { ListElement { foo: [ ListElement { bar: 123 } ] } }" + << "import QtQuick 1.0\nListModel { ListElement { foo: [ ListElement { bar: 123 } ] } }" << ""; QTest::newRow("default properties not allowed in ListElement") - << "import Qt 4.7\nListModel { ListElement { Item { } } }" + << "import QtQuick 1.0\nListModel { ListElement { Item { } } }" << "ListElement: cannot contain nested elements"; QTest::newRow("QML elements not allowed in ListElement") - << "import Qt 4.7\nListModel { ListElement { a: Item { } } }" + << "import QtQuick 1.0\nListModel { ListElement { a: Item { } } }" << "ListElement: cannot contain nested elements"; QTest::newRow("qualified ListElement supported") - << "import Qt 4.7 as Foo\nFoo.ListModel { Foo.ListElement { a: 123 } }" + << "import QtQuick 1.0 as Foo\nFoo.ListModel { Foo.ListElement { a: 123 } }" << ""; QTest::newRow("qualified ListElement required") - << "import Qt 4.7 as Foo\nFoo.ListModel { ListElement { a: 123 } }" + << "import QtQuick 1.0 as Foo\nFoo.ListModel { ListElement { a: 123 } }" << "ListElement is not a type"; QTest::newRow("unknown qualified ListElement not allowed") - << "import Qt 4.7\nListModel { Foo.ListElement { a: 123 } }" + << "import QtQuick 1.0\nListModel { Foo.ListElement { a: 123 } }" << "Foo.ListElement - Foo is not a namespace"; } @@ -664,7 +664,7 @@ void tst_qdeclarativelistmodel::error() void tst_qdeclarativelistmodel::syncError() { - QString qml = "import Qt 4.7\nListModel { id: lm; Component.onCompleted: lm.sync() }"; + QString qml = "import QtQuick 1.0\nListModel { id: lm; Component.onCompleted: lm.sync() }"; QString error = "file:dummy.qml:2:1: QML ListModel: List sync() can only be called from a WorkerScript"; QDeclarativeEngine engine; @@ -716,7 +716,7 @@ void tst_qdeclarativelistmodel::get() QDeclarativeEngine eng; QDeclarativeComponent component(&eng); component.setData( - "import Qt 4.7\n" + "import QtQuick 1.0\n" "ListModel { \n" "ListElement { roleA: 100 }\n" "ListElement { roleA: 200; roleB: 400 } \n" @@ -829,7 +829,7 @@ void tst_qdeclarativelistmodel::get_nested() QDeclarativeEngine eng; QDeclarativeComponent component(&eng); component.setData( - "import Qt 4.7\n" + "import QtQuick 1.0\n" "ListModel { \n" "ListElement {\n" "listRoleA: [\n" diff --git a/tests/auto/declarative/qdeclarativelistreference/data/MyType.qml b/tests/auto/declarative/qdeclarativelistreference/data/MyType.qml index 0275e21..0687ce3 100644 --- a/tests/auto/declarative/qdeclarativelistreference/data/MyType.qml +++ b/tests/auto/declarative/qdeclarativelistreference/data/MyType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a diff --git a/tests/auto/declarative/qdeclarativelistreference/data/engineTypes.qml b/tests/auto/declarative/qdeclarativelistreference/data/engineTypes.qml index 1ab5692..9ddc763 100644 --- a/tests/auto/declarative/qdeclarativelistreference/data/engineTypes.qml +++ b/tests/auto/declarative/qdeclarativelistreference/data/engineTypes.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property list myList diff --git a/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml b/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml index 13de975..39a49e8 100644 --- a/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml +++ b/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property list myList; diff --git a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml index defd13e..487b70e 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativelistview/data/footer.qml b/tests/auto/declarative/qdeclarativelistview/data/footer.qml index 11cbe16..4cbd33b 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/footer.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/footer.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml b/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml index 9ea5953..fca2901 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/itemlist.qml @@ -1,7 +1,7 @@ // This example demonstrates placing items in a view using // a VisualItemModel -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightgray" diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview-enforcerange.qml b/tests/auto/declarative/qdeclarativelistview/data/listview-enforcerange.qml index 939a4d5..49dbcb3 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/listview-enforcerange.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/listview-enforcerange.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml b/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml index f3c2910..2c4cfab 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property int current: list.currentIndex diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview-sections.qml b/tests/auto/declarative/qdeclarativelistview/data/listview-sections.qml index 9a5ea55..283678b 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/listview-sections.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/listview-sections.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml index d5d3365..534540f 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml index 4913ebe..d8cfd9a 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { diff --git a/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml b/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml index 300fcb5..04bec59 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 180; height: 120; color: "white" diff --git a/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml b/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml index 6fc41fa..bb77a77 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { id: list diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index cd17fad..6452bae 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -1416,10 +1416,10 @@ void tst_QDeclarativeListView::componentChanges() QTRY_VERIFY(listView); QDeclarativeComponent component(canvas->engine()); - component.setData("import Qt 4.7; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile("")); QDeclarativeComponent delegateComponent(canvas->engine()); - delegateComponent.setData("import Qt 4.7; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); + delegateComponent.setData("import QtQuick 1.0; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); QSignalSpy highlightSpy(listView, SIGNAL(highlightChanged())); QSignalSpy delegateSpy(listView, SIGNAL(delegateChanged())); diff --git a/tests/auto/declarative/qdeclarativeloader/data/AnchoredLoader.qml b/tests/auto/declarative/qdeclarativeloader/data/AnchoredLoader.qml index 5d02dae..7654c07 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/AnchoredLoader.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/AnchoredLoader.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300 diff --git a/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml b/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml index f202fc8..d2da64d 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { objectName: "blue" diff --git a/tests/auto/declarative/qdeclarativeloader/data/GraphicsWidget250x250.qml b/tests/auto/declarative/qdeclarativeloader/data/GraphicsWidget250x250.qml index 3b851c1..139657b 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/GraphicsWidget250x250.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/GraphicsWidget250x250.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QGraphicsWidget { size: "250x250" diff --git a/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml b/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml index 9b8f770..5aeb81e 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativeloader/data/NoResize.qml b/tests/auto/declarative/qdeclarativeloader/data/NoResize.qml index 72cd3b9..bb1030e 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/NoResize.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/NoResize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 200; height: 80 diff --git a/tests/auto/declarative/qdeclarativeloader/data/NoResizeGraphicsWidget.qml b/tests/auto/declarative/qdeclarativeloader/data/NoResizeGraphicsWidget.qml index 0cff506..5a31eff 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/NoResizeGraphicsWidget.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/NoResizeGraphicsWidget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 200 diff --git a/tests/auto/declarative/qdeclarativeloader/data/Rect120x60.qml b/tests/auto/declarative/qdeclarativeloader/data/Rect120x60.qml index d808c51..5a35284 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/Rect120x60.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/Rect120x60.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 120 diff --git a/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml b/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml index d99dd01..fa2d3cb 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { function clear() { diff --git a/tests/auto/declarative/qdeclarativeloader/data/SizeGraphicsWidgetToLoader.qml b/tests/auto/declarative/qdeclarativeloader/data/SizeGraphicsWidgetToLoader.qml index 81610ad..a855947 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/SizeGraphicsWidgetToLoader.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/SizeGraphicsWidgetToLoader.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { width: 200 diff --git a/tests/auto/declarative/qdeclarativeloader/data/SizeLoaderToGraphicsWidget.qml b/tests/auto/declarative/qdeclarativeloader/data/SizeLoaderToGraphicsWidget.qml index a801a42..b6fd57f 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/SizeLoaderToGraphicsWidget.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/SizeLoaderToGraphicsWidget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { source: "GraphicsWidget250x250.qml" diff --git a/tests/auto/declarative/qdeclarativeloader/data/SizeToItem.qml b/tests/auto/declarative/qdeclarativeloader/data/SizeToItem.qml index 77aa8d9..36ce991 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/SizeToItem.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/SizeToItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { source: "Rect120x60.qml" diff --git a/tests/auto/declarative/qdeclarativeloader/data/SizeToLoader.qml b/tests/auto/declarative/qdeclarativeloader/data/SizeToLoader.qml index 0098927..4fa945b 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/SizeToLoader.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/SizeToLoader.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { width: 200; height: 80 diff --git a/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml b/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml index 633f03d..a36c246 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 100; height: 100; color: "red" diff --git a/tests/auto/declarative/qdeclarativeloader/data/crash.qml b/tests/auto/declarative/qdeclarativeloader/data/crash.qml index db9abca..c7a4407 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/crash.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/crash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400 diff --git a/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml b/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml index b32558b..043ce55 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { source: "http://evil.place/evil.qml" } diff --git a/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml b/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml index 5ce003d..1d0ab5c 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { sourceComponent: QtObject {} diff --git a/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml b/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml index 812c1be..dbea969 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Item { } diff --git a/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml b/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml index 91732a1..8ba13a0 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { source: "sameorigin-load.qml" } diff --git a/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml b/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml index ae33e00..cfced31 100644 --- a/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml +++ b/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Loader { source: "VmeError.qml" diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp index b62392d..8d04616 100644 --- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp +++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp @@ -102,7 +102,7 @@ tst_QDeclarativeLoader::tst_QDeclarativeLoader() void tst_QDeclarativeLoader::url() { QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 0; onLoaded: did_load=123; source: \"Rect120x60.qml\" }"), TEST_FILE("")); + component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load: 0; onLoaded: did_load=123; source: \"Rect120x60.qml\" }"), TEST_FILE("")); QDeclarativeLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QVERIFY(loader->item()); @@ -140,7 +140,7 @@ void tst_QDeclarativeLoader::invalidUrl() QTest::ignoreMessage(QtWarningMsg, QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found").toUtf8().constData()); QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE("")); + component.setData(QByteArray("import QtQuick 1.0\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE("")); QDeclarativeLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); QVERIFY(loader->item() == 0); @@ -156,7 +156,7 @@ void tst_QDeclarativeLoader::clear() { QDeclarativeComponent component(&engine); component.setData(QByteArray( - "import Qt 4.7\n" + "import QtQuick 1.0\n" " Loader { id: loader\n" " source: 'Rect120x60.qml'\n" " Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n" @@ -220,7 +220,7 @@ void tst_QDeclarativeLoader::clear() void tst_QDeclarativeLoader::urlToComponent() { QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\n" + component.setData(QByteArray("import QtQuick 1.0\n" "Loader {\n" " id: loader\n" " Component { id: myComp; Rectangle { width: 10; height: 10 } }\n" @@ -445,7 +445,7 @@ void tst_QDeclarativeLoader::networkRequestUrl() server.serveDirectory(SRCDIR "/data"); QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: did_load=123 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml")); + component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: did_load=123 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml")); if (component.isError()) qDebug() << component.errors(); QDeclarativeLoader *loader = qobject_cast(component.create()); @@ -470,7 +470,7 @@ void tst_QDeclarativeLoader::networkComponent() QDeclarativeComponent component(&engine); component.setData(QByteArray( - "import Qt 4.7\n" + "import QtQuick 1.0\n" "import \"http://127.0.0.1:14450/\" as NW\n" "Item {\n" " Component { id: comp; NW.SlowRect {} }\n" @@ -502,7 +502,7 @@ void tst_QDeclarativeLoader::failNetworkRequest() QTest::ignoreMessage(QtWarningMsg, "http://127.0.0.1:14450/IDontExist.qml: File not found"); QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 123; source: \"http://127.0.0.1:14450/IDontExist.qml\"; onLoaded: did_load=456 }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml")); + component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load: 123; source: \"http://127.0.0.1:14450/IDontExist.qml\"; onLoaded: did_load=456 }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml")); QDeclarativeLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); diff --git a/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml b/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml index f926daa..a6409e2 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml b/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml index 9cddf1b..2348444 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml b/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml index a28f049..dd89efb 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: whiteRect width: 200 diff --git a/tests/auto/declarative/qdeclarativemousearea/data/dragproperties.qml b/tests/auto/declarative/qdeclarativemousearea/data/dragproperties.qml index ba15250..7baefd5 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/dragproperties.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/dragproperties.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: whiteRect width: 200 diff --git a/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml b/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml index 789125b..c6d2e20 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: whiteRect width: 200 diff --git a/tests/auto/declarative/qdeclarativemousearea/data/rejectEvent.qml b/tests/auto/declarative/qdeclarativemousearea/data/rejectEvent.qml index c01e938..fc8292d 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/rejectEvent.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/rejectEvent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml index 6008499..b77f743 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "#ffffff" diff --git a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml index 2a2b905..6571d8b 100644 --- a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml +++ b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "#ffffff" diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml b/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml index ec8f452..dad9746 100644 --- a/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml +++ b/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Rectangle { diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml b/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml index af15665..c76fe9b 100644 --- a/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml +++ b/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Rectangle{ diff --git a/tests/auto/declarative/qdeclarativepathview/data/datamodel.qml b/tests/auto/declarative/qdeclarativepathview/data/datamodel.qml index fb3c910..1322025 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/datamodel.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/datamodel.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 PathView { id: pathview diff --git a/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml b/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml index c82914f..88dfc57 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml b/tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml index 177c405..4deb45f 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 PathView { model: emptyModel diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathUpdateOnStartChanged.qml b/tests/auto/declarative/qdeclarativepathview/data/pathUpdateOnStartChanged.qml index ce0f0c9..bd732ab 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathUpdateOnStartChanged.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathUpdateOnStartChanged.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800 diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml b/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml index caa1586..b13c006 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Path { startX: 120; startY: 100 diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml index ff6f224..04c7717 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview1.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview1.qml index c3d2f91..d1ac517 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathview1.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathview1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 PathView { } diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml index 2ce66a2..1e1e893 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 PathView { id: photoPathView diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml index 066c531..cd1ba03 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 PathView { id: photoPathView diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview_package.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview_package.qml index 082da13..f9157bd 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/pathview_package.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/pathview_package.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 800; height: 600 diff --git a/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml b/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml index 6cc9d2a..c0cc855 100644 --- a/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml +++ b/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 350; height: 220; color: "white" diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp index cbfbfbd..3b5d438 100644 --- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp +++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp @@ -687,7 +687,7 @@ void tst_QDeclarativePathView::componentChanges() QVERIFY(pathView); QDeclarativeComponent delegateComponent(canvas->engine()); - delegateComponent.setData("import Qt 4.7; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); + delegateComponent.setData("import QtQuick 1.0; Text { text: 'Name: ' + name }", QUrl::fromLocalFile("")); QSignalSpy delegateSpy(pathView, SIGNAL(delegateChanged())); diff --git a/tests/auto/declarative/qdeclarativepositioners/data/flow-testimplicitsize.qml b/tests/auto/declarative/qdeclarativepositioners/data/flow-testimplicitsize.qml index 6dd108e..51c8134 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/flow-testimplicitsize.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/flow-testimplicitsize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 200; @@ -13,4 +13,4 @@ Rectangle { Rectangle { color: "red"; width: 100; height: 50 } Rectangle { color: "blue"; width: 100; height: 50 } } -} \ No newline at end of file +} diff --git a/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml b/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml index 3ba015d..2810234 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 90 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml index 3a56be6..e13f078 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml index e098812..f037330 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml index 8799366..5d4c337 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml b/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml index ab7238a..f3b17dd 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml b/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml index 8e11f4e..169f974 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml index 20a6258..5b064cd 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml index 0e368c1..2b46bca 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml index 71ad6ec..919cecc 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml b/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml index a53ff82..3c95c4c 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Grid { id: myGrid diff --git a/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml b/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml index 531d716..1cba598 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml index 1499c1e..8899ac8 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml index f7e853a..5578961 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml index 9e3d6ab..310d791 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml b/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml index c9c8607..c320714 100644 --- a/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml +++ b/tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 640 diff --git a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp index 887be50..57a8354 100644 --- a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp +++ b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp @@ -694,80 +694,80 @@ void tst_QDeclarativePositioners::test_conflictinganchors() QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nColumn { Item {} }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nColumn { Item {} }", QUrl::fromLocalFile("")); QDeclarativeItem *item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); - component.setData("import Qt 4.7\nRow { Item {} }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nRow { Item {} }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); - component.setData("import Qt 4.7\nGrid { Item {} }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nGrid { Item {} }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); - component.setData("import Qt 4.7\nFlow { Item {} }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nFlow { Item {} }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); - component.setData("import Qt 4.7\nColumn { Item { anchors.top: parent.top } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nColumn { Item { anchors.top: parent.top } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column")); warningMessage.clear(); - component.setData("import Qt 4.7\nColumn { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nColumn { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column")); warningMessage.clear(); - component.setData("import Qt 4.7\nColumn { Item { anchors.left: parent.left } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nColumn { Item { anchors.left: parent.left } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); warningMessage.clear(); - component.setData("import Qt 4.7\nRow { Item { anchors.left: parent.left } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nRow { Item { anchors.left: parent.left } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Row: Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row")); warningMessage.clear(); - component.setData("import Qt 4.7\nRow { Item { anchors.fill: parent } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nRow { Item { anchors.fill: parent } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Row: Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row")); warningMessage.clear(); - component.setData("import Qt 4.7\nRow { Item { anchors.top: parent.top } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nRow { Item { anchors.top: parent.top } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QVERIFY(warningMessage.isEmpty()); warningMessage.clear(); - component.setData("import Qt 4.7\nGrid { Item { anchors.horizontalCenter: parent.horizontalCenter } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nGrid { Item { anchors.horizontalCenter: parent.horizontalCenter } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Grid: Cannot specify anchors for items inside Grid")); warningMessage.clear(); - component.setData("import Qt 4.7\nGrid { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nGrid { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Grid: Cannot specify anchors for items inside Grid")); warningMessage.clear(); - component.setData("import Qt 4.7\nFlow { Item { anchors.verticalCenter: parent.verticalCenter } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nFlow { Item { anchors.verticalCenter: parent.verticalCenter } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow")); - component.setData("import Qt 4.7\nFlow { Item { anchors.fill: parent } }", QUrl::fromLocalFile("")); + component.setData("import QtQuick 1.0\nFlow { Item { anchors.fill: parent } }", QUrl::fromLocalFile("")); item = qobject_cast(component.create()); QVERIFY(item); QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow")); diff --git a/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml b/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml index 2177ae2..cef86b4 100644 --- a/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml +++ b/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a: 10 diff --git a/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml b/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml index 0918e86..a91d3ed 100644 --- a/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml +++ b/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property TestType test diff --git a/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp b/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp index f1d3bf0..c825e85 100644 --- a/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp +++ b/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp @@ -138,7 +138,7 @@ void tst_QDeclarativePropertyMap::changed() QDeclarativeContext *ctxt = engine.rootContext(); ctxt->setContextProperty(QLatin1String("testdata"), &map); QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nText { text: { testdata.key1 = 'Hello World'; 'X' } }", + component.setData("import QtQuick 1.0\nText { text: { testdata.key1 = 'Hello World'; 'X' } }", QUrl::fromLocalFile("")); QVERIFY(component.isReady()); QDeclarativeText *txt = qobject_cast(component.create()); @@ -179,7 +179,7 @@ void tst_QDeclarativePropertyMap::crashBug() context.setContextProperty("map", &map); QDeclarativeComponent c(&engine); - c.setData("import Qt 4.7\nBinding { target: map; property: \"myProp\"; value: 10 + 23 }",QUrl()); + c.setData("import QtQuick 1.0\nBinding { target: map; property: \"myProp\"; value: 10 + 23 }",QUrl()); QObject *obj = c.create(&context); delete obj; } diff --git a/tests/auto/declarative/qdeclarativeqt/data/atob.qml b/tests/auto/declarative/qdeclarativeqt/data/atob.qml index 8355fa5..f74aae8 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/atob.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/atob.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string test1: Qt.atob() diff --git a/tests/auto/declarative/qdeclarativeqt/data/btoa.qml b/tests/auto/declarative/qdeclarativeqt/data/btoa.qml index c2993ff..63b58c0 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/btoa.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/btoa.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string test1: Qt.btoa() diff --git a/tests/auto/declarative/qdeclarativeqt/data/consoleLog.qml b/tests/auto/declarative/qdeclarativeqt/data/consoleLog.qml index aa9e92a..fe47f3f 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/consoleLog.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/consoleLog.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { Component.onCompleted: { diff --git a/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml b/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml index f966931..9d0dd34 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool emptyArg: false diff --git a/tests/auto/declarative/qdeclarativeqt/data/createComponentData.qml b/tests/auto/declarative/qdeclarativeqt/data/createComponentData.qml index dc3e0d3..6ac470e 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/createComponentData.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/createComponentData.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int test: 1913 diff --git a/tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.qml b/tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.qml index 33203c7..5b8c1b1 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "createComponent_lib.js" as Test Item { diff --git a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml index ca3ff22..8c35ebf 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml @@ -1,14 +1,14 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root // errors resulting in exceptions property QtObject incorrectArgCount1: Qt.createQmlObject() - property QtObject incorrectArgCount2: Qt.createQmlObject("import Qt 4.7\nQtObject{}", root, "main.qml", 10) - property QtObject noParent: Qt.createQmlObject("import Qt 4.7\nQtObject{\nproperty int test: 13}", 0) - property QtObject notAvailable: Qt.createQmlObject("import Qt 4.7\nQtObject{Blah{}}", root) - property QtObject errors: Qt.createQmlObject("import Qt 4.7\nQtObject{\nproperty int test: 13\nproperty int test: 13\n}", root, "main.qml") + property QtObject incorrectArgCount2: Qt.createQmlObject("import QtQuick 1.0\nQtObject{}", root, "main.qml", 10) + property QtObject noParent: Qt.createQmlObject("import QtQuick 1.0\nQtObject{\nproperty int test: 13}", 0) + property QtObject notAvailable: Qt.createQmlObject("import QtQuick 1.0\nQtObject{Blah{}}", root) + property QtObject errors: Qt.createQmlObject("import QtQuick 1.0\nQtObject{\nproperty int test: 13\nproperty int test: 13\n}", root, "main.qml") property bool emptyArg: false @@ -18,14 +18,14 @@ Item { // errors resulting in nulls emptyArg = (Qt.createQmlObject("", root) == null); try { - Qt.createQmlObject("import Qt 4.7\nQtObject{property int test\nonTestChanged: QtObject{}\n}", root) + Qt.createQmlObject("import QtQuick 1.0\nQtObject{property int test\nonTestChanged: QtObject{}\n}", root) } catch (error) { console.log("RunTimeError: ",error.message); } - var o = Qt.createQmlObject("import Qt 4.7\nQtObject{\nproperty int test: 13\n}", root); + var o = Qt.createQmlObject("import QtQuick 1.0\nQtObject{\nproperty int test: 13\n}", root); success = (o.test == 13); - Qt.createQmlObject("import Qt 4.7\nItem {}\n", root); + Qt.createQmlObject("import QtQuick 1.0\nItem {}\n", root); } } diff --git a/tests/auto/declarative/qdeclarativeqt/data/darker.qml b/tests/auto/declarative/qdeclarativeqt/data/darker.qml index 738095d..d2ef866 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/darker.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/darker.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.darker(Qt.rgba(1, 0.8, 0.3)) diff --git a/tests/auto/declarative/qdeclarativeqt/data/enums.qml b/tests/auto/declarative/qdeclarativeqt/data/enums.qml index a0190cc..aec6f63 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/enums.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/enums.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int test1: Qt.Key_Escape diff --git a/tests/auto/declarative/qdeclarativeqt/data/fontFamilies.qml b/tests/auto/declarative/qdeclarativeqt/data/fontFamilies.qml index e66c7be..c9f50d4 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/fontFamilies.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/fontFamilies.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.fontFamilies(10) diff --git a/tests/auto/declarative/qdeclarativeqt/data/formatting.qml b/tests/auto/declarative/qdeclarativeqt/data/formatting.qml index 7f48639..35c6a29 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/formatting.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/formatting.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property date date1: "2008-12-24" diff --git a/tests/auto/declarative/qdeclarativeqt/data/hsla.qml b/tests/auto/declarative/qdeclarativeqt/data/hsla.qml index 4ca67a3..3bcc791 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/hsla.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/hsla.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property color test1: Qt.hsla(1, 0, 0, 0.8); diff --git a/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml b/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml index 0f573c4..37b952d 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: root diff --git a/tests/auto/declarative/qdeclarativeqt/data/lighter.qml b/tests/auto/declarative/qdeclarativeqt/data/lighter.qml index ddaf78d..67f0d0f 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/lighter.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/lighter.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.lighter(Qt.rgba(1, 0.8, 0.3)) diff --git a/tests/auto/declarative/qdeclarativeqt/data/md5.qml b/tests/auto/declarative/qdeclarativeqt/data/md5.qml index 07f719b..32e90c0 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/md5.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/md5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string test1: Qt.md5() diff --git a/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml b/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml index 3ceb05d..c9fb25e 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { Component.onCompleted: Qt.openUrlExternally("test:url") diff --git a/tests/auto/declarative/qdeclarativeqt/data/point.qml b/tests/auto/declarative/qdeclarativeqt/data/point.qml index 0ada2d5..8b0188e 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/point.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/point.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.point(19, 34); diff --git a/tests/auto/declarative/qdeclarativeqt/data/quit.qml b/tests/auto/declarative/qdeclarativeqt/data/quit.qml index f4c8441..62564a6 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/quit.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/quit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { Component.onCompleted: Qt.quit() diff --git a/tests/auto/declarative/qdeclarativeqt/data/rect.qml b/tests/auto/declarative/qdeclarativeqt/data/rect.qml index fd38628..872bf50 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/rect.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/rect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.rect(10, 13, 100, 109) diff --git a/tests/auto/declarative/qdeclarativeqt/data/rgba.qml b/tests/auto/declarative/qdeclarativeqt/data/rgba.qml index 16606cd..bbafc6d 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/rgba.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/rgba.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property color test1: Qt.rgba(1, 0, 0, 0.8); diff --git a/tests/auto/declarative/qdeclarativeqt/data/size.qml b/tests/auto/declarative/qdeclarativeqt/data/size.qml index afcfb62..8e102eb 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/size.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/size.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.size(19, 34); diff --git a/tests/auto/declarative/qdeclarativeqt/data/tint.qml b/tests/auto/declarative/qdeclarativeqt/data/tint.qml index 25e7051..f873886 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/tint.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/tint.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property color test1: Qt.tint("red", "blue"); diff --git a/tests/auto/declarative/qdeclarativeqt/data/vector.qml b/tests/auto/declarative/qdeclarativeqt/data/vector.qml index b7708f5..f494fe0 100644 --- a/tests/auto/declarative/qdeclarativeqt/data/vector.qml +++ b/tests/auto/declarative/qdeclarativeqt/data/vector.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property variant test1: Qt.vector3d(1, 0, 0.9); diff --git a/tests/auto/declarative/qdeclarativerepeater/data/intmodel.qml b/tests/auto/declarative/qdeclarativerepeater/data/intmodel.qml index 9cd03c4..85e1608 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/intmodel.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/intmodel.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml index 4810736..590a9cd 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml @@ -1,7 +1,7 @@ // This example demonstrates placing items in a view using // a VisualItemModel -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativerepeater/data/objlist.qml b/tests/auto/declarative/qdeclarativerepeater/data/objlist.qml index e1bd2e2..b47b042 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/objlist.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/objlist.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativerepeater/data/properties.qml b/tests/auto/declarative/qdeclarativerepeater/data/properties.qml index 34bbde0..689a103 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/properties.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/properties.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Row { Repeater { diff --git a/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml b/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml index 3047435..2456b6d 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativerepeater/data/repeater2.qml b/tests/auto/declarative/qdeclarativerepeater/data/repeater2.qml index 7f2f85a..02ef810 100644 --- a/tests/auto/declarative/qdeclarativerepeater/data/repeater2.qml +++ b/tests/auto/declarative/qdeclarativerepeater/data/repeater2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 240 diff --git a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp index 360d90f..91a4d68 100644 --- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp +++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp @@ -397,7 +397,7 @@ void tst_QDeclarativeRepeater::properties() QSignalSpy delegateSpy(repeater, SIGNAL(delegateChanged())); QDeclarativeComponent rectComponent(&engine); - rectComponent.setData("import Qt 4.7; Rectangle {}", QUrl::fromLocalFile("")); + rectComponent.setData("import QtQuick 1.0; Rectangle {}", QUrl::fromLocalFile("")); repeater->setDelegate(&rectComponent); QCOMPARE(delegateSpy.count(),1); diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml index ad627ef..9096c32 100644 --- a/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml +++ b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 import "backtrace1.js" as Script diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml index 1de5f16..3a2c4e3 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml @@ -1,3 +1,3 @@ -import Qt 4.7 +import QtQuick 1.0 SmoothedAnimation {} diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml index 544e7e9..47935d4 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 SmoothedAnimation { to: 10; duration: 300; reversingMode: SmoothedAnimation.Immediate diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml index c1f3af0..fe44cce 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 SmoothedAnimation { to: 10; velocity: 250; reversingMode: SmoothedAnimation.Sync diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml index 3afeb7b..6561122 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400; color: "blue" diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml index 53429e2..5036d5f 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; diff --git a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml index 07587bd..8890a78 100644 --- a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml +++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 SpringAnimation { } diff --git a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml index 562f44a..de75bb0 100644 --- a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml +++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 SpringAnimation { to: 1.44; velocity: 0.9 diff --git a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml index 9f70bf4..b68d769 100644 --- a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml +++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 SpringAnimation { to: 1.44; velocity: 0.9 diff --git a/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp b/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp index f92d7e8..b71ed91 100644 --- a/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp +++ b/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp @@ -201,7 +201,7 @@ void tst_qdeclarativesqldatabase::testQml() QFETCH(QString, jsfile); QString qml= - "import Qt 4.7\n" + "import QtQuick 1.0\n" "import \""+jsfile+"\" as JS\n" "Text { text: JS.test() }"; diff --git a/tests/auto/declarative/qdeclarativestates/data/ExtendedRectangle.qml b/tests/auto/declarative/qdeclarativestates/data/ExtendedRectangle.qml index 28e083c..d91f504 100644 --- a/tests/auto/declarative/qdeclarativestates/data/ExtendedRectangle.qml +++ b/tests/auto/declarative/qdeclarativestates/data/ExtendedRectangle.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: extendedRect objectName: "extendedRect" diff --git a/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml b/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml index 1872de8..6ad3b4a 100644 --- a/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml +++ b/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Column { diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml index e9c9d67..fad2708 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml index cee2ce5..e1d4d66 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml index 54dc34b..116b844 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml index 885c3ce..eaff373 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml index c3db72e..ea7b251 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml index 861ef8f..ca96da8 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml index e6b6020..6277111 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container color: "red" @@ -34,4 +34,4 @@ Rectangle { opacity: 0 } } -} \ No newline at end of file +} diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug2.qml b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug2.qml index 4ed2815..d8b02e9 100644 --- a/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativestates/data/attachedPropertyChanges.qml b/tests/auto/declarative/qdeclarativestates/data/attachedPropertyChanges.qml index e17823b..2cad050 100644 --- a/tests/auto/declarative/qdeclarativestates/data/attachedPropertyChanges.qml +++ b/tests/auto/declarative/qdeclarativestates/data/attachedPropertyChanges.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 Item { id: item diff --git a/tests/auto/declarative/qdeclarativestates/data/autoStateAtStartupRestoreBug.qml b/tests/auto/declarative/qdeclarativestates/data/autoStateAtStartupRestoreBug.qml index 37e1e5a..ccd126f 100644 --- a/tests/auto/declarative/qdeclarativestates/data/autoStateAtStartupRestoreBug.qml +++ b/tests/auto/declarative/qdeclarativestates/data/autoStateAtStartupRestoreBug.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: root diff --git a/tests/auto/declarative/qdeclarativestates/data/basicBinding.qml b/tests/auto/declarative/qdeclarativestates/data/basicBinding.qml index d559691..2060f03 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicBinding.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicBinding.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/basicBinding2.qml b/tests/auto/declarative/qdeclarativestates/data/basicBinding2.qml index a429b24..a329da3 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicBinding2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicBinding2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/basicBinding3.qml b/tests/auto/declarative/qdeclarativestates/data/basicBinding3.qml index 26405d9..cb054d2 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicBinding3.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicBinding3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/basicBinding4.qml b/tests/auto/declarative/qdeclarativestates/data/basicBinding4.qml index 153a2c1..7a740e5 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicBinding4.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicBinding4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/basicChanges.qml b/tests/auto/declarative/qdeclarativestates/data/basicChanges.qml index fca7916..08ce787 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicChanges.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicChanges.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/basicChanges2.qml b/tests/auto/declarative/qdeclarativestates/data/basicChanges2.qml index 72bd23e..ab97ba1 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicChanges2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicChanges2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/basicChanges3.qml b/tests/auto/declarative/qdeclarativestates/data/basicChanges3.qml index 4fb1274..73ac34d 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicChanges3.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicChanges3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/basicChanges4.qml b/tests/auto/declarative/qdeclarativestates/data/basicChanges4.qml index b2f02c9..b5df922 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicChanges4.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicChanges4.qml @@ -1,5 +1,5 @@ import Qt.test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyRectangle { id: rect diff --git a/tests/auto/declarative/qdeclarativestates/data/basicExtension.qml b/tests/auto/declarative/qdeclarativestates/data/basicExtension.qml index abfe71a..58c9fbe 100644 --- a/tests/auto/declarative/qdeclarativestates/data/basicExtension.qml +++ b/tests/auto/declarative/qdeclarativestates/data/basicExtension.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/deleting.qml b/tests/auto/declarative/qdeclarativestates/data/deleting.qml index a8a66cb..d1b3fd3 100644 --- a/tests/auto/declarative/qdeclarativestates/data/deleting.qml +++ b/tests/auto/declarative/qdeclarativestates/data/deleting.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/deletingState.qml b/tests/auto/declarative/qdeclarativestates/data/deletingState.qml index fadb7d9..654e09c 100644 --- a/tests/auto/declarative/qdeclarativestates/data/deletingState.qml +++ b/tests/auto/declarative/qdeclarativestates/data/deletingState.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/editProperties.qml b/tests/auto/declarative/qdeclarativestates/data/editProperties.qml index 4cb1ddd..08d0209 100644 --- a/tests/auto/declarative/qdeclarativestates/data/editProperties.qml +++ b/tests/auto/declarative/qdeclarativestates/data/editProperties.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/explicit.qml b/tests/auto/declarative/qdeclarativestates/data/explicit.qml index 718b169..4267319 100644 --- a/tests/auto/declarative/qdeclarativestates/data/explicit.qml +++ b/tests/auto/declarative/qdeclarativestates/data/explicit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle property color sourceColor: "blue" diff --git a/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml b/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml index a3c4827..a4b77b1 100644 --- a/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml +++ b/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qdeclarativestates/data/fakeExtension.qml b/tests/auto/declarative/qdeclarativestates/data/fakeExtension.qml index 44397b5..a98c96b 100644 --- a/tests/auto/declarative/qdeclarativestates/data/fakeExtension.qml +++ b/tests/auto/declarative/qdeclarativestates/data/fakeExtension.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml b/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml index 26d0f50..e644432 100644 --- a/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml +++ b/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myItem diff --git a/tests/auto/declarative/qdeclarativestates/data/illegalTempState.qml b/tests/auto/declarative/qdeclarativestates/data/illegalTempState.qml index 13cab18..c04b03c 100644 --- a/tests/auto/declarative/qdeclarativestates/data/illegalTempState.qml +++ b/tests/auto/declarative/qdeclarativestates/data/illegalTempState.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: card diff --git a/tests/auto/declarative/qdeclarativestates/data/legalTempState.qml b/tests/auto/declarative/qdeclarativestates/data/legalTempState.qml index f757da0..4d500d9 100644 --- a/tests/auto/declarative/qdeclarativestates/data/legalTempState.qml +++ b/tests/auto/declarative/qdeclarativestates/data/legalTempState.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: card diff --git a/tests/auto/declarative/qdeclarativestates/data/nonExistantProp.qml b/tests/auto/declarative/qdeclarativestates/data/nonExistantProp.qml index db9b017..4973b82c 100644 --- a/tests/auto/declarative/qdeclarativestates/data/nonExistantProp.qml +++ b/tests/auto/declarative/qdeclarativestates/data/nonExistantProp.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml index 8b0e3bf..2f7e80e 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400 diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange2.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange2.qml index 3a14dbe..bdd0c6c 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: newParent diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange3.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange3.qml index 17c07e8..55f3ead 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange3.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400 diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange4.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange4.qml index 11d0831..ae05b05 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange4.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400 diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange5.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange5.qml index 329d277..32a0b91 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange5.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400 diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml index be92aba..70ad894 100644 --- a/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml +++ b/tests/auto/declarative/qdeclarativestates/data/parentChange6.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 400 diff --git a/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml b/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml index 8f9a7f2..3ab3c32 100644 --- a/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml +++ b/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/reset.qml b/tests/auto/declarative/qdeclarativestates/data/reset.qml index 5725320..8799c97 100644 --- a/tests/auto/declarative/qdeclarativestates/data/reset.qml +++ b/tests/auto/declarative/qdeclarativestates/data/reset.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 640 diff --git a/tests/auto/declarative/qdeclarativestates/data/restoreEntryValues.qml b/tests/auto/declarative/qdeclarativestates/data/restoreEntryValues.qml index 621adf0..dfd7c17 100644 --- a/tests/auto/declarative/qdeclarativestates/data/restoreEntryValues.qml +++ b/tests/auto/declarative/qdeclarativestates/data/restoreEntryValues.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/returnToBase.qml b/tests/auto/declarative/qdeclarativestates/data/returnToBase.qml index e342331..a0d053c 100644 --- a/tests/auto/declarative/qdeclarativestates/data/returnToBase.qml +++ b/tests/auto/declarative/qdeclarativestates/data/returnToBase.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: theRect diff --git a/tests/auto/declarative/qdeclarativestates/data/script.qml b/tests/auto/declarative/qdeclarativestates/data/script.qml index cdb6be1..630aaf0 100644 --- a/tests/auto/declarative/qdeclarativestates/data/script.qml +++ b/tests/auto/declarative/qdeclarativestates/data/script.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRectangle width: 100; height: 100 diff --git a/tests/auto/declarative/qdeclarativestates/data/signalOverride.qml b/tests/auto/declarative/qdeclarativestates/data/signalOverride.qml index c4ab96c..0eaf547 100644 --- a/tests/auto/declarative/qdeclarativestates/data/signalOverride.qml +++ b/tests/auto/declarative/qdeclarativestates/data/signalOverride.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyRectangle { diff --git a/tests/auto/declarative/qdeclarativestates/data/signalOverride2.qml b/tests/auto/declarative/qdeclarativestates/data/signalOverride2.qml index 65a8cea..ef26ff1 100644 --- a/tests/auto/declarative/qdeclarativestates/data/signalOverride2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/signalOverride2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyRectangle { diff --git a/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash.qml b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash.qml index 8a0b51a..8e9b698 100644 --- a/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash.qml +++ b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.test 1.0 MyRectangle { diff --git a/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash2.qml b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash2.qml index 2215ee4..74df943 100644 --- a/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash2.qml +++ b/tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myRect diff --git a/tests/auto/declarative/qdeclarativestates/data/unnamedWhen.qml b/tests/auto/declarative/qdeclarativestates/data/unnamedWhen.qml index a70840c..4425b4d 100644 --- a/tests/auto/declarative/qdeclarativestates/data/unnamedWhen.qml +++ b/tests/auto/declarative/qdeclarativestates/data/unnamedWhen.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: theRect diff --git a/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml b/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml index 8995b56..743f540 100644 --- a/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml +++ b/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "Implementation" Rectangle { diff --git a/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml b/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml index 08d0795..48aef5a 100644 --- a/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml +++ b/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property bool condition1: false diff --git a/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp b/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp index dd1fd7a..b8f5851 100644 --- a/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp +++ b/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp @@ -75,7 +75,7 @@ tst_qdeclarativesystempalette::tst_qdeclarativesystempalette() void tst_qdeclarativesystempalette::activePalette() { - QString componentStr = "import Qt 4.7\nSystemPalette { }"; + QString componentStr = "import QtQuick 1.0\nSystemPalette { }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeSystemPalette *object = qobject_cast(component.create()); @@ -104,7 +104,7 @@ void tst_qdeclarativesystempalette::activePalette() void tst_qdeclarativesystempalette::inactivePalette() { - QString componentStr = "import Qt 4.7\nSystemPalette { colorGroup: SystemPalette.Inactive }"; + QString componentStr = "import QtQuick 1.0\nSystemPalette { colorGroup: SystemPalette.Inactive }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeSystemPalette *object = qobject_cast(component.create()); @@ -134,7 +134,7 @@ void tst_qdeclarativesystempalette::inactivePalette() void tst_qdeclarativesystempalette::disabledPalette() { - QString componentStr = "import Qt 4.7\nSystemPalette { colorGroup: SystemPalette.Disabled }"; + QString componentStr = "import QtQuick 1.0\nSystemPalette { colorGroup: SystemPalette.Disabled }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeSystemPalette *object = qobject_cast(component.create()); @@ -164,7 +164,7 @@ void tst_qdeclarativesystempalette::disabledPalette() void tst_qdeclarativesystempalette::paletteChanged() { - QString componentStr = "import Qt 4.7\nSystemPalette { }"; + QString componentStr = "import QtQuick 1.0\nSystemPalette { }"; QDeclarativeComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeSystemPalette *object = qobject_cast(component.create()); diff --git a/tests/auto/declarative/qdeclarativetext/data/alignments.qml b/tests/auto/declarative/qdeclarativetext/data/alignments.qml index 762e2b6..25105f6 100644 --- a/tests/auto/declarative/qdeclarativetext/data/alignments.qml +++ b/tests/auto/declarative/qdeclarativetext/data/alignments.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: top diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml index 877222f..ee9b95a 100644 --- a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml +++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Text { text: "" diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml index abc7077..4dc0d3e 100644 --- a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml +++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Text { text: "" diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml index b6ca3e3..438f4a0 100644 --- a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml +++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Text { text: "" diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml index fbfce9a..c24bf24 100644 --- a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml +++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Text { text: "" diff --git a/tests/auto/declarative/qdeclarativetext/data/rotated.qml b/tests/auto/declarative/qdeclarativetext/data/rotated.qml index 01eec44..1e893b9 100644 --- a/tests/auto/declarative/qdeclarativetext/data/rotated.qml +++ b/tests/auto/declarative/qdeclarativetext/data/rotated.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width : 200 diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp index f683d98..d6c37ae 100644 --- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp +++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp @@ -184,7 +184,7 @@ void tst_qdeclarativetext::text() { { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nText { text: \"\" }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nText { text: \"\" }", QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -196,7 +196,7 @@ void tst_qdeclarativetext::text() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); @@ -209,7 +209,7 @@ void tst_qdeclarativetext::text() for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -226,7 +226,7 @@ void tst_qdeclarativetext::width() // uses Font metrics to find the width for standard and document to find the width for rich { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nText { text: \"\" }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nText { text: \"\" }", QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -242,7 +242,7 @@ void tst_qdeclarativetext::width() qreal metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width(); metricWidth = qCeil(metricWidth); - QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -263,7 +263,7 @@ void tst_qdeclarativetext::width() int documentWidth = document.idealWidth(); - QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -280,7 +280,7 @@ void tst_qdeclarativetext::wrap() // for specified width and wrap set true { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nText { text: \"Hello\"; wrapMode: Text.WordWrap; width: 300 }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nText { text: \"Hello\"; wrapMode: Text.WordWrap; width: 300 }", QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); textHeight = textObject->height(); @@ -291,7 +291,7 @@ void tst_qdeclarativetext::wrap() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -307,7 +307,7 @@ void tst_qdeclarativetext::wrap() for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -324,7 +324,7 @@ void tst_qdeclarativetext::wrap() // richtext again with a fixed height for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; height: 50; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { wrapMode: Text.WordWrap; width: 30; height: 50; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -349,7 +349,7 @@ void tst_qdeclarativetext::elide() { QDeclarativeComponent textComponent(&engine); - textComponent.setData(("import Qt 4.7\nText { text: \"\"; "+elide+" width: 100 }").toLatin1(), QUrl::fromLocalFile("")); + textComponent.setData(("import QtQuick 1.0\nText { text: \"\"; "+elide+" width: 100 }").toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->elideMode(), m); @@ -358,7 +358,7 @@ void tst_qdeclarativetext::elide() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nText { "+elide+" width: 100; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { "+elide+" width: 100; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -370,7 +370,7 @@ void tst_qdeclarativetext::elide() // richtext - does nothing for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nText { "+elide+" width: 100; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { "+elide+" width: 100; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -385,7 +385,7 @@ void tst_qdeclarativetext::textFormat() { { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nText { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nText { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -393,7 +393,7 @@ void tst_qdeclarativetext::textFormat() } { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nText { text: \"Hello\"; textFormat: Text.PlainText }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nText { text: \"Hello\"; textFormat: Text.PlainText }", QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -471,7 +471,7 @@ void tst_qdeclarativetext::horizontalAlignment() { for (int j=0; j < horizontalAlignmentmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -484,7 +484,7 @@ void tst_qdeclarativetext::horizontalAlignment() { for (int j=0; j < horizontalAlignmentmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -503,7 +503,7 @@ void tst_qdeclarativetext::verticalAlignment() { for (int j=0; j < verticalAlignmentmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -517,7 +517,7 @@ void tst_qdeclarativetext::verticalAlignment() { for (int j=0; j < verticalAlignmentmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -533,7 +533,7 @@ void tst_qdeclarativetext::font() { //test size, then bold, then italic, then family { - QString componentStr = "import Qt 4.7\nText { font.pointSize: 40; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.pointSize: 40; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -544,7 +544,7 @@ void tst_qdeclarativetext::font() } { - QString componentStr = "import Qt 4.7\nText { font.pixelSize: 40; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.pixelSize: 40; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -555,7 +555,7 @@ void tst_qdeclarativetext::font() } { - QString componentStr = "import Qt 4.7\nText { font.bold: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.bold: true; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -565,7 +565,7 @@ void tst_qdeclarativetext::font() } { - QString componentStr = "import Qt 4.7\nText { font.italic: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.italic: true; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -575,7 +575,7 @@ void tst_qdeclarativetext::font() } { - QString componentStr = "import Qt 4.7\nText { font.family: \"Helvetica\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.family: \"Helvetica\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -586,7 +586,7 @@ void tst_qdeclarativetext::font() } { - QString componentStr = "import Qt 4.7\nText { font.family: \"\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.family: \"\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -600,7 +600,7 @@ void tst_qdeclarativetext::style() //test style for (int i = 0; i < styles.size(); i++) { - QString componentStr = "import Qt 4.7\nText { style: \"" + styleStrings.at(i) + "\"; styleColor: \"white\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { style: \"" + styleStrings.at(i) + "\"; styleColor: \"white\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -608,7 +608,7 @@ void tst_qdeclarativetext::style() QCOMPARE((int)textObject->style(), (int)styles.at(i)); QCOMPARE(textObject->styleColor(), QColor("white")); } - QString componentStr = "import Qt 4.7\nText { text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -626,7 +626,7 @@ void tst_qdeclarativetext::color() //test style for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nText { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -637,7 +637,7 @@ void tst_qdeclarativetext::color() for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nText { styleColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { styleColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -651,7 +651,7 @@ void tst_qdeclarativetext::color() { for (int j = 0; j < colorStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nText { color: \"" + colorStrings.at(i) + "\"; styleColor: \"" + colorStrings.at(j) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { color: \"" + colorStrings.at(i) + "\"; styleColor: \"" + colorStrings.at(j) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -665,7 +665,7 @@ void tst_qdeclarativetext::color() QColor testColor("#001234"); testColor.setAlpha(170); - QString componentStr = "import Qt 4.7\nText { color: \"" + colorStr + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nText { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -679,14 +679,14 @@ void tst_qdeclarativetext::smooth() for (int i = 0; i < standard.size(); i++) { { - QString componentStr = "import Qt 4.7\nText { smooth: true; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { smooth: true; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->smooth(), true); } { - QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -696,14 +696,14 @@ void tst_qdeclarativetext::smooth() for (int i = 0; i < richText.size(); i++) { { - QString componentStr = "import Qt 4.7\nText { smooth: true; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { smooth: true; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); QCOMPARE(textObject->smooth(), true); } { - QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -715,7 +715,7 @@ void tst_qdeclarativetext::smooth() void tst_qdeclarativetext::weight() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -724,7 +724,7 @@ void tst_qdeclarativetext::weight() QCOMPARE((int)textObject->font().weight(), (int)QDeclarativeFontValueType::Normal); } { - QString componentStr = "import Qt 4.7\nText { font.weight: \"Bold\"; text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.weight: \"Bold\"; text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -737,7 +737,7 @@ void tst_qdeclarativetext::weight() void tst_qdeclarativetext::underline() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -746,7 +746,7 @@ void tst_qdeclarativetext::underline() QCOMPARE(textObject->font().underline(), false); } { - QString componentStr = "import Qt 4.7\nText { font.underline: true; text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.underline: true; text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -759,7 +759,7 @@ void tst_qdeclarativetext::underline() void tst_qdeclarativetext::overline() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -768,7 +768,7 @@ void tst_qdeclarativetext::overline() QCOMPARE(textObject->font().overline(), false); } { - QString componentStr = "import Qt 4.7\nText { font.overline: true; text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.overline: true; text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -781,7 +781,7 @@ void tst_qdeclarativetext::overline() void tst_qdeclarativetext::strikeout() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -790,7 +790,7 @@ void tst_qdeclarativetext::strikeout() QCOMPARE(textObject->font().strikeOut(), false); } { - QString componentStr = "import Qt 4.7\nText { font.strikeout: true; text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { font.strikeout: true; text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -803,7 +803,7 @@ void tst_qdeclarativetext::strikeout() void tst_qdeclarativetext::capitalization() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -812,7 +812,7 @@ void tst_qdeclarativetext::capitalization() QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::MixedCase); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"AllUppercase\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.capitalization: \"AllUppercase\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -821,7 +821,7 @@ void tst_qdeclarativetext::capitalization() QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::AllUppercase); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"AllLowercase\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.capitalization: \"AllLowercase\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -830,7 +830,7 @@ void tst_qdeclarativetext::capitalization() QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::AllLowercase); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"SmallCaps\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.capitalization: \"SmallCaps\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -839,7 +839,7 @@ void tst_qdeclarativetext::capitalization() QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::SmallCaps); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"Capitalize\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.capitalization: \"Capitalize\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -852,7 +852,7 @@ void tst_qdeclarativetext::capitalization() void tst_qdeclarativetext::letterSpacing() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -861,7 +861,7 @@ void tst_qdeclarativetext::letterSpacing() QCOMPARE(textObject->font().letterSpacing(), 0.0); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: -2 }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.letterSpacing: -2 }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -870,7 +870,7 @@ void tst_qdeclarativetext::letterSpacing() QCOMPARE(textObject->font().letterSpacing(), -2.); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: 3 }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.letterSpacing: 3 }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -883,7 +883,7 @@ void tst_qdeclarativetext::letterSpacing() void tst_qdeclarativetext::wordSpacing() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -892,7 +892,7 @@ void tst_qdeclarativetext::wordSpacing() QCOMPARE(textObject->font().wordSpacing(), 0.0); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.wordSpacing: -50 }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.wordSpacing: -50 }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -901,7 +901,7 @@ void tst_qdeclarativetext::wordSpacing() QCOMPARE(textObject->font().wordSpacing(), -50.); } { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.wordSpacing: 200 }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\"; font.wordSpacing: 200 }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); @@ -949,7 +949,7 @@ public slots: void tst_qdeclarativetext::clickLink() { { - QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nText { text: \"Hello world!\" }"; QDeclarativeComponent textComponent(&engine); textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); QDeclarativeText *textObject = qobject_cast(textComponent.create()); diff --git a/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml b/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml index 9281a06..bc977fc 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: top diff --git a/tests/auto/declarative/qdeclarativetextedit/data/cursorTest.qml b/tests/auto/declarative/qdeclarativetextedit/data/cursorTest.qml index 586e606..c7c21fc 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/cursorTest.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/cursorTest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" TextEdit { text: "Hello world!"; id: textEditObject; objectName: "textEditObject" diff --git a/tests/auto/declarative/qdeclarativetextedit/data/geometrySignals.qml b/tests/auto/declarative/qdeclarativetextedit/data/geometrySignals.qml index b39ba5b..fe2ae12 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/geometrySignals.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/geometrySignals.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 400; height: 500; diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/ErrItem.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/ErrItem.qml index b5c807e..fa7dbd1 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/ErrItem.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/ErrItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item{ Fungus{ diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/NormItem.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/NormItem.qml index df843d8..4989193 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/NormItem.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/NormItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { objectName: "delegateOkay" diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTest.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTest.qml index 1b41f8f..724c058 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTest.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" resources: [ diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail1.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail1.qml index 51be3cf..6dcf785 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail1.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" resources: [ diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail2.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail2.qml index 30c3fbd..5f441d0 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail2.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" resources: [ diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestPass.qml b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestPass.qml index a1ca58a..95f5d87 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestPass.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestPass.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" resources: [ diff --git a/tests/auto/declarative/qdeclarativetextedit/data/httpfail/FailItem.qml b/tests/auto/declarative/qdeclarativetextedit/data/httpfail/FailItem.qml index 8dfac48..466eb9d 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/httpfail/FailItem.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/httpfail/FailItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Rectangle { } diff --git a/tests/auto/declarative/qdeclarativetextedit/data/httpslow/WaitItem.qml b/tests/auto/declarative/qdeclarativetextedit/data/httpslow/WaitItem.qml index 8dfac48..466eb9d 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/httpslow/WaitItem.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/httpslow/WaitItem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { Rectangle { } diff --git a/tests/auto/declarative/qdeclarativetextedit/data/inputmethodhints.qml b/tests/auto/declarative/qdeclarativetextedit/data/inputmethodhints.qml index 8067edb..7df17f2 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/inputmethodhints.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/inputmethodhints.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextEdit { text: "Hello world!" diff --git a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_default.qml b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_default.qml index f1cf86c..22a9871 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_default.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_default.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextEdit { focus: true diff --git a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false.qml b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false.qml index f1cf86c..22a9871 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextEdit { focus: true diff --git a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true.qml b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true.qml index 90383b9..d61da46 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextEdit { focus: true diff --git a/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml b/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml index 7772687..9ee8a93 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property variant myInput: input diff --git a/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml b/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml index a68e4b4..36177d3 100644 --- a/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml +++ b/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property variant myInput: input diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index 84f4230..472c5ef 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -184,7 +184,7 @@ void tst_qdeclarativetextedit::text() { { QDeclarativeComponent texteditComponent(&engine); - texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\" }", QUrl()); + texteditComponent.setData("import QtQuick 1.0\nTextEdit { text: \"\" }", QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); @@ -193,7 +193,7 @@ void tst_qdeclarativetextedit::text() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -204,7 +204,7 @@ void tst_qdeclarativetextedit::text() for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -224,7 +224,7 @@ void tst_qdeclarativetextedit::width() // uses Font metrics to find the width for standard and document to find the width for rich { QDeclarativeComponent texteditComponent(&engine); - texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\" }", QUrl()); + texteditComponent.setData("import QtQuick 1.0\nTextEdit { text: \"\" }", QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); @@ -238,7 +238,7 @@ void tst_qdeclarativetextedit::width() qreal metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width(); metricWidth = ceil(metricWidth); - QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -255,7 +255,7 @@ void tst_qdeclarativetextedit::width() int documentWidth = ceil(document.idealWidth()); - QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -270,7 +270,7 @@ void tst_qdeclarativetextedit::wrap() // for specified width and wrap set true { QDeclarativeComponent texteditComponent(&engine); - texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\"; wrapMode: TextEdit.WordWrap; width: 300 }", QUrl()); + texteditComponent.setData("import QtQuick 1.0\nTextEdit { text: \"\"; wrapMode: TextEdit.WordWrap; width: 300 }", QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); @@ -279,7 +279,7 @@ void tst_qdeclarativetextedit::wrap() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -290,7 +290,7 @@ void tst_qdeclarativetextedit::wrap() for (int i = 0; i < richText.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -305,7 +305,7 @@ void tst_qdeclarativetextedit::textFormat() { { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nTextEdit { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nTextEdit { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile("")); QDeclarativeTextEdit *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -313,7 +313,7 @@ void tst_qdeclarativetextedit::textFormat() } { QDeclarativeComponent textComponent(&engine); - textComponent.setData("import Qt 4.7\nTextEdit { text: \"Hello\"; textFormat: Text.PlainText }", QUrl::fromLocalFile("")); + textComponent.setData("import QtQuick 1.0\nTextEdit { text: \"Hello\"; textFormat: Text.PlainText }", QUrl::fromLocalFile("")); QDeclarativeTextEdit *textObject = qobject_cast(textComponent.create()); QVERIFY(textObject != 0); @@ -381,7 +381,7 @@ void tst_qdeclarativetextedit::hAlign() { for (int j=0; j < hAlignmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -395,7 +395,7 @@ void tst_qdeclarativetextedit::hAlign() { for (int j=0; j < hAlignmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -415,7 +415,7 @@ void tst_qdeclarativetextedit::vAlign() { for (int j=0; j < vAlignmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -429,7 +429,7 @@ void tst_qdeclarativetextedit::vAlign() { for (int j=0; j < vAlignmentStrings.size(); j++) { - QString componentStr = "import Qt 4.7\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -445,7 +445,7 @@ void tst_qdeclarativetextedit::font() { //test size, then bold, then italic, then family { - QString componentStr = "import Qt 4.7\nTextEdit { font.pointSize: 40; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { font.pointSize: 40; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -457,7 +457,7 @@ void tst_qdeclarativetextedit::font() } { - QString componentStr = "import Qt 4.7\nTextEdit { font.bold: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { font.bold: true; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -468,7 +468,7 @@ void tst_qdeclarativetextedit::font() } { - QString componentStr = "import Qt 4.7\nTextEdit { font.italic: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { font.italic: true; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -479,7 +479,7 @@ void tst_qdeclarativetextedit::font() } { - QString componentStr = "import Qt 4.7\nTextEdit { font.family: \"Helvetica\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { font.family: \"Helvetica\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -491,7 +491,7 @@ void tst_qdeclarativetextedit::font() } { - QString componentStr = "import Qt 4.7\nTextEdit { font.family: \"\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { font.family: \"\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -505,7 +505,7 @@ void tst_qdeclarativetextedit::color() { //test initial color { - QString componentStr = "import Qt 4.7\nTextEdit { text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -523,7 +523,7 @@ void tst_qdeclarativetextedit::color() //test normal for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -535,7 +535,7 @@ void tst_qdeclarativetextedit::color() //test selection for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -546,7 +546,7 @@ void tst_qdeclarativetextedit::color() //test selected text for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextEdit { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -559,7 +559,7 @@ void tst_qdeclarativetextedit::color() QColor testColor("#001234"); testColor.setAlpha(170); - QString componentStr = "import Qt 4.7\nTextEdit { color: \"" + colorStr + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -572,7 +572,7 @@ void tst_qdeclarativetextedit::color() void tst_qdeclarativetextedit::textMargin() { for(qreal i=0; i<=10; i+=0.3){ - QString componentStr = "import Qt 4.7\nTextEdit { textMargin: " + QString::number(i) + "; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { textMargin: " + QString::number(i) + "; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -584,7 +584,7 @@ void tst_qdeclarativetextedit::textMargin() void tst_qdeclarativetextedit::persistentSelection() { { - QString componentStr = "import Qt 4.7\nTextEdit { persistentSelection: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { persistentSelection: true; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -593,7 +593,7 @@ void tst_qdeclarativetextedit::persistentSelection() } { - QString componentStr = "import Qt 4.7\nTextEdit { persistentSelection: false; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { persistentSelection: false; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -605,7 +605,7 @@ void tst_qdeclarativetextedit::persistentSelection() void tst_qdeclarativetextedit::focusOnPress() { { - QString componentStr = "import Qt 4.7\nTextEdit { activeFocusOnPress: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { activeFocusOnPress: true; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -614,7 +614,7 @@ void tst_qdeclarativetextedit::focusOnPress() } { - QString componentStr = "import Qt 4.7\nTextEdit { activeFocusOnPress: false; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { activeFocusOnPress: false; text: \"Hello World\" }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -626,7 +626,7 @@ void tst_qdeclarativetextedit::focusOnPress() void tst_qdeclarativetextedit::selection() { QString testStr = standard[0];//TODO: What should happen for multiline/rich text? - QString componentStr = "import Qt 4.7\nTextEdit { text: \""+ testStr +"\"; }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \""+ testStr +"\"; }"; QDeclarativeComponent texteditComponent(&engine); texteditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEditObject = qobject_cast(texteditComponent.create()); @@ -866,7 +866,7 @@ void tst_qdeclarativetextedit::copyAndPaste() { } #endif - QString componentStr = "import Qt 4.7\nTextEdit { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nTextEdit { text: \"Hello world!\" }"; QDeclarativeComponent textEditComponent(&engine); textEditComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextEdit *textEdit = qobject_cast(textEditComponent.create()); diff --git a/tests/auto/declarative/qdeclarativetextinput/data/cursorTest.qml b/tests/auto/declarative/qdeclarativetextinput/data/cursorTest.qml index f0d1be5..73085c1 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/cursorTest.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/cursorTest.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 300; color: "white" TextInput { text: "Hello world!"; id: textInputObject; objectName: "textInputObject" diff --git a/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml index 66a2017..0320872 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property QtObject myInput: input diff --git a/tests/auto/declarative/qdeclarativetextinput/data/geometrySignals.qml b/tests/auto/declarative/qdeclarativetextinput/data/geometrySignals.qml index a9b50fe..353d0e2 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/geometrySignals.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/geometrySignals.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 400; height: 500; diff --git a/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml b/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml index b97f18e..3114c48 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: top diff --git a/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml b/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml index 405ee22..5063892 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextInput { text: "Hello world!" diff --git a/tests/auto/declarative/qdeclarativetextinput/data/masks.qml b/tests/auto/declarative/qdeclarativetextinput/data/masks.qml index 141c243..c75764a 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/masks.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/masks.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextInput{ focus: true diff --git a/tests/auto/declarative/qdeclarativetextinput/data/maxLength.qml b/tests/auto/declarative/qdeclarativetextinput/data/maxLength.qml index c3d5994..95902bb 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/maxLength.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/maxLength.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextInput{ focus: true diff --git a/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml b/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml index 58866b7..af1b140 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property variant myInput: input diff --git a/tests/auto/declarative/qdeclarativetextinput/data/positionAt.qml b/tests/auto/declarative/qdeclarativetextinput/data/positionAt.qml index 2800351..cbbf33d 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/positionAt.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/positionAt.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 TextInput{ focus: true diff --git a/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml b/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml index b10ea81..f173649 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { property variant myInput: input diff --git a/tests/auto/declarative/qdeclarativetextinput/data/validators.qml b/tests/auto/declarative/qdeclarativetextinput/data/validators.qml index 4b1ba27..e26bcb3 100644 --- a/tests/auto/declarative/qdeclarativetextinput/data/validators.qml +++ b/tests/auto/declarative/qdeclarativetextinput/data/validators.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property variant intInput: intInput diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index 7450d35..76e0102 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -144,7 +144,7 @@ void tst_qdeclarativetextinput::text() { { QDeclarativeComponent textinputComponent(&engine); - textinputComponent.setData("import Qt 4.7\nTextInput { text: \"\" }", QUrl()); + textinputComponent.setData("import QtQuick 1.0\nTextInput { text: \"\" }", QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); @@ -155,7 +155,7 @@ void tst_qdeclarativetextinput::text() for (int i = 0; i < standard.size(); i++) { - QString componentStr = "import Qt 4.7\nTextInput { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -173,7 +173,7 @@ void tst_qdeclarativetextinput::width() // uses Font metrics to find the width for standard { QDeclarativeComponent textinputComponent(&engine); - textinputComponent.setData("import Qt 4.7\nTextInput { text: \"\" }", QUrl()); + textinputComponent.setData("import QtQuick 1.0\nTextInput { text: \"\" }", QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); QVERIFY(textinputObject != 0); @@ -188,7 +188,7 @@ void tst_qdeclarativetextinput::width() QFontMetricsF fm(f); qreal metricWidth = fm.width(standard.at(i)); - QString componentStr = "import Qt 4.7\nTextInput { text: \"" + standard.at(i) + "\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { text: \"" + standard.at(i) + "\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -205,7 +205,7 @@ void tst_qdeclarativetextinput::font() { //test size, then bold, then italic, then family { - QString componentStr = "import Qt 4.7\nTextInput { font.pointSize: 40; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { font.pointSize: 40; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -219,7 +219,7 @@ void tst_qdeclarativetextinput::font() } { - QString componentStr = "import Qt 4.7\nTextInput { font.bold: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { font.bold: true; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -232,7 +232,7 @@ void tst_qdeclarativetextinput::font() } { - QString componentStr = "import Qt 4.7\nTextInput { font.italic: true; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { font.italic: true; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -245,7 +245,7 @@ void tst_qdeclarativetextinput::font() } { - QString componentStr = "import Qt 4.7\nTextInput { font.family: \"Helvetica\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { font.family: \"Helvetica\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -259,7 +259,7 @@ void tst_qdeclarativetextinput::font() } { - QString componentStr = "import Qt 4.7\nTextInput { font.family: \"\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { font.family: \"\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -276,7 +276,7 @@ void tst_qdeclarativetextinput::color() //test color for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextInput { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -289,7 +289,7 @@ void tst_qdeclarativetextinput::color() //test selection color for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextInput { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -302,7 +302,7 @@ void tst_qdeclarativetextinput::color() //test selected text color for (int i = 0; i < colorStrings.size(); i++) { - QString componentStr = "import Qt 4.7\nTextInput { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -317,7 +317,7 @@ void tst_qdeclarativetextinput::color() QColor testColor("#001234"); testColor.setAlpha(170); - QString componentStr = "import Qt 4.7\nTextInput { color: \"" + colorStr + "\"; text: \"Hello World\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { color: \"" + colorStr + "\"; text: \"Hello World\" }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -332,7 +332,7 @@ void tst_qdeclarativetextinput::color() void tst_qdeclarativetextinput::selection() { QString testStr = standard[0]; - QString componentStr = "import Qt 4.7\nTextInput { text: \""+ testStr +"\"; }"; + QString componentStr = "import QtQuick 1.0\nTextInput { text: \""+ testStr +"\"; }"; QDeclarativeComponent textinputComponent(&engine); textinputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textinputObject = qobject_cast(textinputComponent.create()); @@ -509,7 +509,7 @@ void tst_qdeclarativetextinput::maxLength() void tst_qdeclarativetextinput::masks() { //Not a comprehensive test of the possible masks, that's done elsewhere (QLineEdit) - //QString componentStr = "import Qt 4.7\nTextInput { inputMask: 'HHHHhhhh'; }"; + //QString componentStr = "import QtQuick 1.0\nTextInput { inputMask: 'HHHHhhhh'; }"; QDeclarativeView *canvas = createView(SRCDIR "/data/masks.qml"); canvas->show(); canvas->setFocus(); @@ -713,7 +713,7 @@ void tst_qdeclarativetextinput::copyAndPaste() { } #endif - QString componentStr = "import Qt 4.7\nTextInput { text: \"Hello world!\" }"; + QString componentStr = "import QtQuick 1.0\nTextInput { text: \"Hello world!\" }"; QDeclarativeComponent textInputComponent(&engine); textInputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textInput = qobject_cast(textInputComponent.create()); @@ -771,7 +771,7 @@ void tst_qdeclarativetextinput::copyAndPaste() { void tst_qdeclarativetextinput::passwordCharacter() { - QString componentStr = "import Qt 4.7\nTextInput { text: \"Hello world!\"; font.family: \"Helvetica\"; echoMode: TextInput.Password }"; + QString componentStr = "import QtQuick 1.0\nTextInput { text: \"Hello world!\"; font.family: \"Helvetica\"; echoMode: TextInput.Password }"; QDeclarativeComponent textInputComponent(&engine); textInputComponent.setData(componentStr.toLatin1(), QUrl()); QDeclarativeTextInput *textInput = qobject_cast(textInputComponent.create()); diff --git a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp index f49cbd0..8c3e618 100644 --- a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp +++ b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp @@ -100,7 +100,7 @@ void tst_qdeclarativetimer::notRepeating() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 100; running: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); QVERIFY(timer->isRunning()); @@ -121,7 +121,7 @@ void tst_qdeclarativetimer::notRepeatingStart() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100 }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 100 }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); QVERIFY(!timer->isRunning()); @@ -146,7 +146,7 @@ void tst_qdeclarativetimer::repeat() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; repeat: true; running: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 100; repeat: true; running: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); @@ -188,7 +188,7 @@ void tst_qdeclarativetimer::triggeredOnStart() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true; triggeredOnStart: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 100; running: true; triggeredOnStart: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); QVERIFY(timer->triggeredOnStart()); @@ -223,7 +223,7 @@ void tst_qdeclarativetimer::triggeredOnStartRepeat() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true; triggeredOnStart: true; repeat: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 100; running: true; triggeredOnStart: true; repeat: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); @@ -247,7 +247,7 @@ void tst_qdeclarativetimer::noTriggerIfNotRunning() QDeclarativeEngine engine; QDeclarativeComponent component(&engine); component.setData(QByteArray( - "import Qt 4.7\n" + "import QtQuick 1.0\n" "Item { property bool ok: true\n" "Timer { id: t1; interval: 100; repeat: true; running: true; onTriggered: if (!running) ok=false }" "Timer { interval: 10; running: true; onTriggered: t1.running=false }" @@ -265,7 +265,7 @@ void tst_qdeclarativetimer::changeDuration() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 200; repeat: true; running: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 200; repeat: true; running: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); @@ -301,7 +301,7 @@ void tst_qdeclarativetimer::restart() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nTimer { interval: 500; repeat: true; running: true }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nTimer { interval: 500; repeat: true; running: true }"), QUrl::fromLocalFile("")); QDeclarativeTimer *timer = qobject_cast(component.create()); QVERIFY(timer != 0); @@ -328,7 +328,7 @@ void tst_qdeclarativetimer::parentProperty() { QDeclarativeEngine engine; QDeclarativeComponent component(&engine); - component.setData(QByteArray("import Qt 4.7\nItem { Timer { objectName: \"timer\"; running: parent.visible } }"), QUrl::fromLocalFile("")); + component.setData(QByteArray("import QtQuick 1.0\nItem { Timer { objectName: \"timer\"; running: parent.visible } }"), QUrl::fromLocalFile("")); QDeclarativeItem *item = qobject_cast(component.create()); QVERIFY(item != 0); QDeclarativeTimer *timer = item->findChild("timer"); diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml index 52591b1..e2e6962 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml index 35005fe..0e09ff9 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml index 4ae45a4..1f6646e 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml index 69b5bfd..391caba 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 import "deletedObject.js" as JS MyTypeObject { diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml index b6767b0..082aed1 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { font.capitalization: Font.AllUppercase diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml index 4227ebf..e5d9ab2 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 as MyQt +import QtQuick 1.0 as MyQt MyTypeObject { font.capitalization: MyQt.Font.AllUppercase diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.5.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.5.qml index a66e9d6..8ec508c 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.5.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.5.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 as MyQt +import QtQuick 1.0 as MyQt MyTypeObject { MyQt.Component.onCompleted: { diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml index cc51c31..2fdfddb 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Test 1.0 Item { diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml index 0615300..f1c1855 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { property bool test1: false; diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/scriptAccess.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/scriptAccess.qml index e962ab0..9299c8b 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/scriptAccess.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/scriptAccess.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Test 1.0 MyTypeObject { diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml index 045fc51..fc41ecf 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml @@ -1,5 +1,5 @@ import Test 1.0 -import Qt 4.7 +import QtQuick 1.0 MyTypeObject { Component.onCompleted: { diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/varAssignment.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/varAssignment.qml index e4715ab..ff80ff8 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/data/varAssignment.qml +++ b/tests/auto/declarative/qdeclarativevaluetypes/data/varAssignment.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int x; diff --git a/tests/auto/declarative/qdeclarativeview/data/error1.qml b/tests/auto/declarative/qdeclarativeview/data/error1.qml index c154716..4887ff9 100644 --- a/tests/auto/declarative/qdeclarativeview/data/error1.qml +++ b/tests/auto/declarative/qdeclarativeview/data/error1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { nonExistentProperty: 5 diff --git a/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml b/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml index 27c8454..e5501a1 100644 --- a/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml +++ b/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 200 height: 200 diff --git a/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml b/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml index 964810c..f270908 100644 --- a/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml +++ b/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QGraphicsWidget { width: 200 height: 200 diff --git a/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml b/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml index 57db82d..fb34312 100644 --- a/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml +++ b/tests/auto/declarative/qdeclarativeviewer/data/orientation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "black" width: (runtime.orientation == Orientation.Landscape || runtime.orientation == Orientation.LandscapeInverted) ? 300 : 200 diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml index c5e945a..ebf1eea 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { width: 100 diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml index d030222..4134259 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { width: 100 diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole1.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole1.qml index 7ea74f2..d72e128 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole1.qml +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { width: 100 diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole2.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole2.qml index 6654d6b..b9e666c 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole2.qml +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 ListView { width: 100 diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml index d70f82b..a5c44d0 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 VisualDataModel { function setRoot() { diff --git a/tests/auto/declarative/qdeclarativewebview/data/basic.qml b/tests/auto/declarative/qdeclarativewebview/data/basic.qml index ff5d3fd..73330cd 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/basic.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/basic.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/tests/auto/declarative/qdeclarativewebview/data/elements.qml b/tests/auto/declarative/qdeclarativewebview/data/elements.qml index 3adfff8..b86dd9d 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/elements.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/elements.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml b/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml index 9f07a51..527e3b9 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/tests/auto/declarative/qdeclarativewebview/data/loadError.qml b/tests/auto/declarative/qdeclarativewebview/data/loadError.qml index a0cc4c8..baab1a0 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/loadError.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/loadError.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml b/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml index e5967b5..e66631d 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml @@ -1,6 +1,6 @@ // Demonstrates opening new WebViews from HTML -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 Grid { diff --git a/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml b/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml index 569f4a5..db06887 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 Item { diff --git a/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml b/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml index 1edd436..7889704 100644 --- a/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml +++ b/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import QtWebKit 1.0 WebView { diff --git a/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp b/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp index 2bded6b..1f460a3 100644 --- a/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp +++ b/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp @@ -454,7 +454,7 @@ void tst_qdeclarativewebview::newWindowComponent() QTRY_COMPARE(wv->property("progress").toDouble(), 1.0); QDeclarativeComponent substituteComponent(&engine); - substituteComponent.setData("import Qt 4.7; WebView { objectName: 'newWebView'; url: 'basic.html'; }", QUrl::fromLocalFile("")); + substituteComponent.setData("import QtQuick 1.0; WebView { objectName: 'newWebView'; url: 'basic.html'; }", QUrl::fromLocalFile("")); QSignalSpy newWindowComponentSpy(wv, SIGNAL(newWindowComponentChanged())); wv->setProperty("newWindowComponent", QVariant::fromValue(&substituteComponent)); diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/BaseWorker.qml b/tests/auto/declarative/qdeclarativeworkerscript/data/BaseWorker.qml index e06afa2..b419c83 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/data/BaseWorker.qml +++ b/tests/auto/declarative/qdeclarativeworkerscript/data/BaseWorker.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 WorkerScript { id: worker diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml index 1a20098..0c439c4 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml +++ b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 BaseWorker { source: "script.js" diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/worker_pragma.qml b/tests/auto/declarative/qdeclarativeworkerscript/data/worker_pragma.qml index 3b720ef..a8800ad 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/data/worker_pragma.qml +++ b/tests/auto/declarative/qdeclarativeworkerscript/data/worker_pragma.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 BaseWorker { source: "script_pragma.js" diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml index 24e4071..0196586 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string urlDummy diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml index e78ce63..aeea278 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url: "testdocument.html" diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml index 79d1355..fffc3d9 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url: "testdocument.html" diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml index 81d8e1d..5d5dd12 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlTest: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/callbackException.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/callbackException.qml index cee07d6..ec6902d 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/callbackException.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/callbackException.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: obj diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml index 49bfebd..be60664 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlTest: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/constructor.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/constructor.qml index ab033a5..0050f91 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/constructor.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/constructor.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool calledAsConstructor diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/defaultState.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/defaultState.qml index d66f283..77b2b94 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/defaultState.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/defaultState.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int readyState diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml index 1df43ef..faf3af0 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlTest: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/domExceptionCodes.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/domExceptionCodes.qml index 827ff3f..0f32a64 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/domExceptionCodes.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/domExceptionCodes.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int index_size_err: DOMException.INDEX_SIZE_ERR diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml index e7a3fb4..daec950 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlTest: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml index 157ae81..686e7e5 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_args.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_args.qml index 7008224..e8b7b77 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_args.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_args.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_sent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_sent.qml index ff58710..1d4883e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_sent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_sent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_unsent.qml index d6256ed..360286d 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_unsent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml index 0f3cdef..f37545e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_args.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_args.qml index a7a8bba..61ce9c6 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_args.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_args.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_sent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_sent.qml index fc0f757..7cd91a2 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_sent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_sent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_unsent.qml index c5507a8..983ea1b 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_unsent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/instanceStateValues.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/instanceStateValues.qml index d3cc845..79e06d4 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/instanceStateValues.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/instanceStateValues.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int unsent diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/invalidMethodUsage.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/invalidMethodUsage.qml index 8c603a4..68f22f5 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/invalidMethodUsage.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/invalidMethodUsage.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool onreadystatechange: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml index 24bde60..4bb5b1d 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.1.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.1.qml index 86a6ac9..da6eb14 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.1.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.2.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.2.qml index 198219c..f003292 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.2.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_invalid_method.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_invalid_method.qml index dacc484..b87823d 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_invalid_method.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_invalid_method.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_sync.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_sync.qml index d38380b..9f8f309 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_sync.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_sync.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml index 2c072e4..2bec344 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_username.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_username.qml index 825ad60..70f2fa6 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_username.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_username.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectError.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectError.qml index cb8f869..f009ab7 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectError.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectError.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectRecur.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectRecur.qml index f895a8c..86337c4 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectRecur.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectRecur.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirects.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirects.qml index 268966e..cd125ad 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirects.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/redirects.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml index 22a9b96..da229f6 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseXML_invalid.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseXML_invalid.qml index d754921..393ff09 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseXML_invalid.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseXML_invalid.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlNull: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml index 8f69a94..fd1c424 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool dataOK: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml index 7ab53d3..3dd851e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml index 3a48e28..fb18936 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml index c68b821..9f2383e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml index 8fee2cd..410820e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml index ea214fa..f56c51b 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml index 524622c..d44864c 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml index a4828cd..427d9f4 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml index a1f46e2..c98555c 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string reqType diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_unsent.qml index 0efa40a..badd729 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_unsent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml index b252f4a..5afab09 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_args.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_args.qml index e83cb72..4558f0e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_args.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_args.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool exceptionThrown: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml index 3f9041c..b15318c 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml index b15b404..3b9a91e 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_unsent.qml index aadc580..327fa7f 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_unsent.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_unsent.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool test: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/staticStateValues.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/staticStateValues.qml index 97d42ac..bc22d87 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/staticStateValues.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/staticStateValues.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int unsent: XMLHttpRequest.UNSENT diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml index e28add2..7aa0874 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml index a44c6ba..d42e0cc 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property string url diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml index 63bfb08..e8c8731 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool xmlTest: false diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml index 85bff29..0f9da30 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { property bool dataOK: false diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/model.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/model.qml index 8354193..fdacb6c 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/model.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/model.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "model.xml" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.qml index 09077b6..e56aafa 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "model.xml" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml index b014aa3..ed674ce 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "model.xml" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.qml index 59b8ddc..6345101 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "recipes.xml" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/roleErrors.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/roleErrors.qml index a905963..a0d846f 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/roleErrors.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/roleErrors.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "model.xml" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/roleKeys.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/roleKeys.qml index eaf5f0a..d90cd61 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/roleKeys.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/roleKeys.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { query: "/data/item" diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/unique.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/unique.qml index 3aa7b1f3..dab8ffa 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/data/unique.qml +++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/unique.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 XmlListModel { source: "model.xml" diff --git a/tests/auto/declarative/qmlvisual/ListView/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/basic1.qml index c67aaaa..d55c997 100644 --- a/tests/auto/declarative/qmlvisual/ListView/basic1.qml +++ b/tests/auto/declarative/qmlvisual/ListView/basic1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/ListView/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/basic2.qml index 73c1b9a..31c802d 100644 --- a/tests/auto/declarative/qmlvisual/ListView/basic2.qml +++ b/tests/auto/declarative/qmlvisual/ListView/basic2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/ListView/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/basic3.qml index 44f74a5..be39ca1 100644 --- a/tests/auto/declarative/qmlvisual/ListView/basic3.qml +++ b/tests/auto/declarative/qmlvisual/ListView/basic3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/ListView/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/basic4.qml index e5d097b..906af63 100644 --- a/tests/auto/declarative/qmlvisual/ListView/basic4.qml +++ b/tests/auto/declarative/qmlvisual/ListView/basic4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/ListView/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/itemlist.qml index 2a00397..7e5d634 100644 --- a/tests/auto/declarative/qmlvisual/ListView/itemlist.qml +++ b/tests/auto/declarative/qmlvisual/ListView/itemlist.qml @@ -1,7 +1,7 @@ // This example demonstrates placing items in a view using // a VisualItemModel -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightgray" diff --git a/tests/auto/declarative/qmlvisual/ListView/listview.qml b/tests/auto/declarative/qmlvisual/ListView/listview.qml index 6e0b47a..341311d 100644 --- a/tests/auto/declarative/qmlvisual/ListView/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/listview.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 600; height: 300; color: "white" diff --git a/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml b/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml index 9db0f0d..99379f1 100644 --- a/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml +++ b/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: root diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml index 406e10b..611eaf5 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml index 49730fc..235ad9d 100644 --- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: mainrect diff --git a/tests/auto/declarative/qmlvisual/animation/easing/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml index d42f069..35b568a 100644 --- a/tests/auto/declarative/qmlvisual/animation/easing/easing.qml +++ b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: item diff --git a/tests/auto/declarative/qmlvisual/animation/loop/loop.qml b/tests/auto/declarative/qmlvisual/animation/loop/loop.qml index 78fbc68..6f62582 100644 --- a/tests/auto/declarative/qmlvisual/animation/loop/loop.qml +++ b/tests/auto/declarative/qmlvisual/animation/loop/loop.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: wrapper diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml index 7e0374c..9a75763 100644 --- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test verifies that a single animation animating two properties is visually the same as two diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml index b30281d..42cec3a 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test shows a green rectangle moving and growing from the upper-left corner diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/parentAnimation2.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/parentAnimation2.qml index dfab108..f497943 100644 --- a/tests/auto/declarative/qmlvisual/animation/parentAnimation2/parentAnimation2.qml +++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation2/parentAnimation2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* Blue rect fills (with 10px margin) screen, then red, then green, then screen again. diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml index cc9a639..1b315b2 100644 --- a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test shows a bouncing logo. diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml index 89c2c5b..6c3e52d 100644 --- a/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test starts with a red rectangle at 0,0. It should animate a color change to blue, diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/qtbug10586.qml b/tests/auto/declarative/qmlvisual/animation/qtbug10586/qtbug10586.qml index f1a3ef7..9ccebfa 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/qtbug10586.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/qtbug10586.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200 diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml b/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml index 8f388bc..93ecd2e 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 300 diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml b/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml index 7a10db1..e0a5a6d 100644 --- a/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml +++ b/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: container diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml index 5008356..1427c9d 100644 --- a/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml +++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test starts with a red rectangle at 0,0. It should animate moving 50 pixels right, diff --git a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml index 817ccc0..2ac98da 100644 --- a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml +++ b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This is a static display test of the various Image fill modes. See the png file in the data diff --git a/tests/auto/declarative/qmlvisual/focusscope/test.qml b/tests/auto/declarative/qmlvisual/focusscope/test.qml index 24b4b99..6b2ee25 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/test.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/test.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qmlvisual/focusscope/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/test2.qml index 19c8bed..4df75cf 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/test2.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/test2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qmlvisual/focusscope/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/test3.qml index 7535c31..184763a 100644 --- a/tests/auto/declarative/qmlvisual/focusscope/test3.qml +++ b/tests/auto/declarative/qmlvisual/focusscope/test3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "white" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml index fdb4da3..8c21cee 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml index 730aeca..fb5cac0 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import "content" Rectangle { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml index 8956128..1a8b7a5 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: page diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml index ce0c38c..f4ead54 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { property alias horizontalMode: image.horizontalTileMode diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml index 175a891..8aa2389 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightSteelBlue" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml index d845353..5f43f95 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "lightSteelBlue" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml index da76ff9..8a178b3 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 240 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml index fa68753..8aeb6c8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { //realWindow width: 370 height: 480 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml index 1b0bd65..c79e19f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 400; color: "black" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml index 30e2424..811e0e4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 300; height: 400; color: "black" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml index 6762645..99c898e 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* this test shows a blue box being dragged around -- first roughly tracing the diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml index e223f5e..70ea78c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 400; height: 480 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml index a686188..540866f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 /* This test displays 6 red rects -- 4 in the top row, 2 in the bottom. diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml index 1b64376..b36a220 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Rectangle { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml index aed6380..38368d4 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 450 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml index e6e1a70..ce516ac 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 450 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml index 5981b12..8da3602 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { width: 400; height: 400; diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml index 91895c2..c318a99 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item{ width: 200; height: 600 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml index d17233e..ac0c141 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 240; color: "gray" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml index 63dba47..720d2e6 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 800; height: 720; color: "gray" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml index c64497a..44c4dcd 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: clock diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml index 05b93df..0097449 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "#ffffff" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml index f04aa66..ec1f8b3 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: s; width: 600; height: 100; color: "lightsteelblue" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml index a4bf452..b96ecb3 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: childrenRect.width diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml index 1058b04..edf0cb5 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 500 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml index 2b9c85c..6698421 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 500 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml index e268a60..25db179 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: s; width: 800; height: 1000; color: "lightsteelblue" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml index a883b9c..31b0e69 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: s; width: 800; height: 1000; color: "lightsteelblue" diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml index 53538cb..c987568 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id:lineedit diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml index 686dd2c..c0eeb82 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { resources: [ Component { id: cursorA diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml index 277b9fc..b5bb102 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { Component { id: testableCursor diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml index 47b48d8..4cf7e97 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle{ width: 600 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml index a1dc5bf..4afe417 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { height:400 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml index e863262..74c16e2 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id:lineedit diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml index 1de2f4f..973462a 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { resources: [ Component { id: cursorA diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml index 5a12e2e..5d11403 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item{ height: 50; width: 200 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml index 08df173..17e13fd 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item{ width:600; diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml index 2465866..318af0f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle{ width: 600 diff --git a/tests/auto/declarative/qmlvisual/rect/GradientRect.qml b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml index 0272f84..dea5377 100644 --- a/tests/auto/declarative/qmlvisual/rect/GradientRect.qml +++ b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: rect diff --git a/tests/auto/declarative/qmlvisual/rect/MyRect.qml b/tests/auto/declarative/qmlvisual/rect/MyRect.qml index 7a315e8..a595f7d 100644 --- a/tests/auto/declarative/qmlvisual/rect/MyRect.qml +++ b/tests/auto/declarative/qmlvisual/rect/MyRect.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: rect diff --git a/tests/auto/declarative/qmlvisual/rect/rect-painting.qml b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml index 6abb03d..3c5d90c 100644 --- a/tests/auto/declarative/qmlvisual/rect/rect-painting.qml +++ b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 900; height: 500 diff --git a/tests/auto/declarative/qmlvisual/repeater/basic1.qml b/tests/auto/declarative/qmlvisual/repeater/basic1.qml index 3d31324..7f1ba84 100644 --- a/tests/auto/declarative/qmlvisual/repeater/basic1.qml +++ b/tests/auto/declarative/qmlvisual/repeater/basic1.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/repeater/basic2.qml b/tests/auto/declarative/qmlvisual/repeater/basic2.qml index 9cad9eb..b10420c 100644 --- a/tests/auto/declarative/qmlvisual/repeater/basic2.qml +++ b/tests/auto/declarative/qmlvisual/repeater/basic2.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/repeater/basic3.qml b/tests/auto/declarative/qmlvisual/repeater/basic3.qml index 6346412..a296801 100644 --- a/tests/auto/declarative/qmlvisual/repeater/basic3.qml +++ b/tests/auto/declarative/qmlvisual/repeater/basic3.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/repeater/basic4.qml b/tests/auto/declarative/qmlvisual/repeater/basic4.qml index 817d438..fa85835 100644 --- a/tests/auto/declarative/qmlvisual/repeater/basic4.qml +++ b/tests/auto/declarative/qmlvisual/repeater/basic4.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Rectangle { color: "blue" diff --git a/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml b/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml index cd4dab1..3ef2a66 100644 --- a/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml +++ b/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Text { property string error: "not pressed" text: (new Date()).valueOf() diff --git a/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml b/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml index c4a502e..b6280a6 100644 --- a/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml +++ b/tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 // The WebView size is determined by the width, height, diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml index 4a72d7f..bee2618 100644 --- a/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml +++ b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 Column { diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml index 4006b47..9e22e20 100644 --- a/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml +++ b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 Column { diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml index 2f68f24..68acced 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 WebView { diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml index c017cd9..4a0db01 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 Grid { diff --git a/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml index 4f8d3b2..3d50664 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 Grid { diff --git a/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml index 42220e4..ae5ddd2 100644 --- a/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml +++ b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 WebView { diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml index c9e3c02..1617bda 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 WebView { diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml index 8174606..e46f726 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 Rectangle { diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml index b2638f9..e9189db 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 WebView { diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml index bf7f9ff..52222be 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 WebView { diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml index 5b4dd7a..dc973c2 100644 --- a/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml +++ b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 import org.webkit 1.0 // Note that zooming is better done using zoomFactor and careful diff --git a/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml index 172bd65..768a4e2 100644 --- a/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml +++ b/tests/auto/linguist/lupdate/testdata/good/parseqml/main.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 QtObject { function translate() { diff --git a/tests/benchmarks/declarative/compilation/data/BoomBlock.qml b/tests/benchmarks/declarative/compilation/data/BoomBlock.qml index 3f43579..b757900 100644 --- a/tests/benchmarks/declarative/compilation/data/BoomBlock.qml +++ b/tests/benchmarks/declarative/compilation/data/BoomBlock.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { diff --git a/tests/benchmarks/declarative/creation/data/item.qml b/tests/benchmarks/declarative/creation/data/item.qml index f1a7dbc..a6223d0 100644 --- a/tests/benchmarks/declarative/creation/data/item.qml +++ b/tests/benchmarks/declarative/creation/data/item.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { Item {} diff --git a/tests/benchmarks/declarative/creation/data/qobject.qml b/tests/benchmarks/declarative/creation/data/qobject.qml index bc6b152..33aeb57 100644 --- a/tests/benchmarks/declarative/creation/data/qobject.qml +++ b/tests/benchmarks/declarative/creation/data/qobject.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject { } diff --git a/tests/benchmarks/declarative/creation/tst_creation.cpp b/tests/benchmarks/declarative/creation/tst_creation.cpp index 94a67fd..6bf7943 100644 --- a/tests/benchmarks/declarative/creation/tst_creation.cpp +++ b/tests/benchmarks/declarative/creation/tst_creation.cpp @@ -130,7 +130,7 @@ void tst_creation::qobject_cpp() void tst_creation::qobject_qml() { QDeclarativeComponent component(&engine); - component.setData("import Qt 4.7\nQtObject {}", QUrl()); + component.setData("import QtQuick 1.0\nQtObject {}", QUrl()); QObject *obj = component.create(); delete obj; diff --git a/tests/benchmarks/declarative/qdeclarativecomponent/data/object.qml b/tests/benchmarks/declarative/qdeclarativecomponent/data/object.qml index df0d5b2..e484ef7 100644 --- a/tests/benchmarks/declarative/qdeclarativecomponent/data/object.qml +++ b/tests/benchmarks/declarative/qdeclarativecomponent/data/object.qml @@ -39,6 +39,6 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject {} diff --git a/tests/benchmarks/declarative/qdeclarativecomponent/data/object_id.qml b/tests/benchmarks/declarative/qdeclarativecomponent/data/object_id.qml index 399aa78..3ce3296 100644 --- a/tests/benchmarks/declarative/qdeclarativecomponent/data/object_id.qml +++ b/tests/benchmarks/declarative/qdeclarativecomponent/data/object_id.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject { id: blah diff --git a/tests/benchmarks/declarative/qdeclarativecomponent/data/samegame/BoomBlock.qml b/tests/benchmarks/declarative/qdeclarativecomponent/data/samegame/BoomBlock.qml index 4b1d81c..073ed90 100644 --- a/tests/benchmarks/declarative/qdeclarativecomponent/data/samegame/BoomBlock.qml +++ b/tests/benchmarks/declarative/qdeclarativecomponent/data/samegame/BoomBlock.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.particles 1.0 Item { id:block diff --git a/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.2.qml b/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.2.qml index 5d67d25..6cf304c 100644 --- a/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.2.qml +++ b/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.2.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a diff --git a/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.qml b/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.qml index a22ba25..c4fc05c 100644 --- a/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.qml +++ b/tests/benchmarks/declarative/qdeclarativecomponent/data/synthesized_properties.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject { property int a diff --git a/tests/benchmarks/declarative/qdeclarativemetaproperty/data/object.qml b/tests/benchmarks/declarative/qdeclarativemetaproperty/data/object.qml index 8c2f46b..90145e8 100644 --- a/tests/benchmarks/declarative/qdeclarativemetaproperty/data/object.qml +++ b/tests/benchmarks/declarative/qdeclarativemetaproperty/data/object.qml @@ -39,6 +39,6 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item {} diff --git a/tests/benchmarks/declarative/qdeclarativemetaproperty/data/synthesized_object.qml b/tests/benchmarks/declarative/qdeclarativemetaproperty/data/synthesized_object.qml index 45748f5..29dfbe5 100644 --- a/tests/benchmarks/declarative/qdeclarativemetaproperty/data/synthesized_object.qml +++ b/tests/benchmarks/declarative/qdeclarativemetaproperty/data/synthesized_object.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { property int blah diff --git a/tests/benchmarks/declarative/qmltime/example.qml b/tests/benchmarks/declarative/qmltime/example.qml index dca1429..4b6de1d 100644 --- a/tests/benchmarks/declarative/qmltime/example.qml +++ b/tests/benchmarks/declarative/qmltime/example.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/anchors/empty.qml b/tests/benchmarks/declarative/qmltime/tests/anchors/empty.qml index 6d8be03..f9418f8 100644 --- a/tests/benchmarks/declarative/qmltime/tests/anchors/empty.qml +++ b/tests/benchmarks/declarative/qmltime/tests/anchors/empty.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/anchors/fill.qml b/tests/benchmarks/declarative/qmltime/tests/anchors/fill.qml index 5371c3d..ef6839f 100644 --- a/tests/benchmarks/declarative/qmltime/tests/anchors/fill.qml +++ b/tests/benchmarks/declarative/qmltime/tests/anchors/fill.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/anchors/null.qml b/tests/benchmarks/declarative/qmltime/tests/anchors/null.qml index bb43dc6..b719001 100644 --- a/tests/benchmarks/declarative/qmltime/tests/anchors/null.qml +++ b/tests/benchmarks/declarative/qmltime/tests/anchors/null.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/animation/large.qml b/tests/benchmarks/declarative/qmltime/tests/animation/large.qml index 11bb6ba..d109313 100644 --- a/tests/benchmarks/declarative/qmltime/tests/animation/large.qml +++ b/tests/benchmarks/declarative/qmltime/tests/animation/large.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/animation/largeNoProps.qml b/tests/benchmarks/declarative/qmltime/tests/animation/largeNoProps.qml index d40627f..6c055dc 100644 --- a/tests/benchmarks/declarative/qmltime/tests/animation/largeNoProps.qml +++ b/tests/benchmarks/declarative/qmltime/tests/animation/largeNoProps.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/item_creation/children.qml b/tests/benchmarks/declarative/qmltime/tests/item_creation/children.qml index 0499201..eed5339 100644 --- a/tests/benchmarks/declarative/qmltime/tests/item_creation/children.qml +++ b/tests/benchmarks/declarative/qmltime/tests/item_creation/children.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/item_creation/data.qml b/tests/benchmarks/declarative/qmltime/tests/item_creation/data.qml index 9064bc2..cc27f04 100644 --- a/tests/benchmarks/declarative/qmltime/tests/item_creation/data.qml +++ b/tests/benchmarks/declarative/qmltime/tests/item_creation/data.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/item_creation/no_creation.qml b/tests/benchmarks/declarative/qmltime/tests/item_creation/no_creation.qml index d27b2b6..7f8909d 100644 --- a/tests/benchmarks/declarative/qmltime/tests/item_creation/no_creation.qml +++ b/tests/benchmarks/declarative/qmltime/tests/item_creation/no_creation.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/item_creation/resources.qml b/tests/benchmarks/declarative/qmltime/tests/item_creation/resources.qml index 0867d0b..05e287b 100644 --- a/tests/benchmarks/declarative/qmltime/tests/item_creation/resources.qml +++ b/tests/benchmarks/declarative/qmltime/tests/item_creation/resources.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/loader/Loaded.qml b/tests/benchmarks/declarative/qmltime/tests/loader/Loaded.qml index 416e0ea..7199a50 100644 --- a/tests/benchmarks/declarative/qmltime/tests/loader/Loaded.qml +++ b/tests/benchmarks/declarative/qmltime/tests/loader/Loaded.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Item { Rectangle {} diff --git a/tests/benchmarks/declarative/qmltime/tests/loader/component_loader.qml b/tests/benchmarks/declarative/qmltime/tests/loader/component_loader.qml index f610eb0..a668423 100644 --- a/tests/benchmarks/declarative/qmltime/tests/loader/component_loader.qml +++ b/tests/benchmarks/declarative/qmltime/tests/loader/component_loader.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/loader/empty_loader.qml b/tests/benchmarks/declarative/qmltime/tests/loader/empty_loader.qml index 334e1b4..7070d91 100644 --- a/tests/benchmarks/declarative/qmltime/tests/loader/empty_loader.qml +++ b/tests/benchmarks/declarative/qmltime/tests/loader/empty_loader.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/loader/no_loader.qml b/tests/benchmarks/declarative/qmltime/tests/loader/no_loader.qml index 507ed34..7bf14de 100644 --- a/tests/benchmarks/declarative/qmltime/tests/loader/no_loader.qml +++ b/tests/benchmarks/declarative/qmltime/tests/loader/no_loader.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/loader/source_loader.qml b/tests/benchmarks/declarative/qmltime/tests/loader/source_loader.qml index 1092a9f..2b95d60 100644 --- a/tests/benchmarks/declarative/qmltime/tests/loader/source_loader.qml +++ b/tests/benchmarks/declarative/qmltime/tests/loader/source_loader.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/no_positioner.qml b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/no_positioner.qml index a125c54..417ec94 100644 --- a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/no_positioner.qml +++ b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/no_positioner.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/null_positioner.qml b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/null_positioner.qml index 18c8fb4..3e9a076 100644 --- a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/null_positioner.qml +++ b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/null_positioner.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/positioner.qml b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/positioner.qml index 2668c4c..d87aa32 100644 --- a/tests/benchmarks/declarative/qmltime/tests/positioner_creation/positioner.qml +++ b/tests/benchmarks/declarative/qmltime/tests/positioner_creation/positioner.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/null.qml b/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/null.qml index 424f768..dc2fcb4 100644 --- a/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/null.qml +++ b/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/null.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/property.qml b/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/property.qml index f803b82..3adefbc 100644 --- a/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/property.qml +++ b/tests/benchmarks/declarative/qmltime/tests/vmemetaobject/property.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import QmlTime 1.0 as QmlTime Item { diff --git a/tests/benchmarks/declarative/script/data/CustomObject.qml b/tests/benchmarks/declarative/script/data/CustomObject.qml index 1656453..97f6d39 100644 --- a/tests/benchmarks/declarative/script/data/CustomObject.qml +++ b/tests/benchmarks/declarative/script/data/CustomObject.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 QtObject { property real prop1: 0 diff --git a/tests/benchmarks/declarative/script/data/block.qml b/tests/benchmarks/declarative/script/data/block.qml index f7b2ab3..4575050 100644 --- a/tests/benchmarks/declarative/script/data/block.qml +++ b/tests/benchmarks/declarative/script/data/block.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { width: 200; height: 200 diff --git a/tests/benchmarks/declarative/script/data/global_prop.qml b/tests/benchmarks/declarative/script/data/global_prop.qml index 4fb7ee7..29bbb7d 100644 --- a/tests/benchmarks/declarative/script/data/global_prop.qml +++ b/tests/benchmarks/declarative/script/data/global_prop.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import "global.js" as Program Rectangle { diff --git a/tools/qml/browser/Browser.qml b/tools/qml/browser/Browser.qml index 279c42f..ebed72f 100644 --- a/tools/qml/browser/Browser.qml +++ b/tools/qml/browser/Browser.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 import Qt.labs.folderlistmodel 1.0 Rectangle { diff --git a/tools/qml/startup/Logo.qml b/tools/qml/startup/Logo.qml index 8d9708d..aa5648f 100644 --- a/tools/qml/startup/Logo.qml +++ b/tools/qml/startup/Logo.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: myApp diff --git a/tools/qml/startup/startup.qml b/tools/qml/startup/startup.qml index ddc7217..9ca50a3 100644 --- a/tools/qml/startup/startup.qml +++ b/tools/qml/startup/startup.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ -import Qt 4.7 +import QtQuick 1.0 Rectangle { id: treatsApp -- cgit v0.12 From 6f35701275ab0cd80daec45b3407725b10571693 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 12:14:44 +1000 Subject: Add test for Qt 4.7 module Task-number: QTBUG-13799 Reviewed-by: Martin Jones --- tests/auto/declarative/declarative.pro | 3 +- .../declarative/moduleqt47/data/importqt47.qml | 80 ++++++++++++++++++++++ tests/auto/declarative/moduleqt47/moduleqt47.pro | 16 +++++ .../auto/declarative/moduleqt47/tst_moduleqt47.cpp | 79 +++++++++++++++++++++ .../tst_qdeclarativelanguage.cpp | 6 ++ 5 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 tests/auto/declarative/moduleqt47/data/importqt47.qml create mode 100644 tests/auto/declarative/moduleqt47/moduleqt47.pro create mode 100644 tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index a7fb3b8..f0fcfa9 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -69,7 +69,8 @@ SUBDIRS += \ qdeclarativexmlhttprequest \ qdeclarativexmllistmodel \ qmlvisual \ - qpacketprotocol + qpacketprotocol \ + moduleqt47 contains(QT_CONFIG, webkit) { SUBDIRS += \ diff --git a/tests/auto/declarative/moduleqt47/data/importqt47.qml b/tests/auto/declarative/moduleqt47/data/importqt47.qml new file mode 100644 index 0000000..0a1b533 --- /dev/null +++ b/tests/auto/declarative/moduleqt47/data/importqt47.qml @@ -0,0 +1,80 @@ +import Qt 4.7 + +Item { + QtObject {} + + Component { Item {} } + + // Util + states: [ + State { + name: "bob" + AnchorChanges {} + ParentChange {} + StateChangeScript {} + PropertyChanges {} + } + ] + transitions: [ + Transition { + AnchorAnimation {} + ColorAnimation {} + SmoothedAnimation {} + NumberAnimation {} + ParallelAnimation {} + ParentAnimation {} + PauseAnimation {} + PropertyAnimation {} + RotationAnimation {} + ScriptAction {} + SequentialAnimation {} + SpringAnimation {} + Vector3dAnimation {} + } + ] + + Behavior on x {} + Binding {} + Connections {} + FontLoader {} + ListModel { ListElement {} } + SystemPalette {} + Timer {} + + // graphic items + BorderImage {} + Column {} + MouseArea {} + Flickable {} + Flipable {} + Flow {} + FocusPanel {} + FocusScope {} + Rectangle { gradient: Gradient { GradientStop {} } } + Grid {} + GridView {} + Image {} + ListView {} + Loader {} + PathView { + path: Path { + PathLine {} + PathCubic {} + PathPercent {} + PathQuad {} + PathAttribute {} + } + } + Repeater {} + Rotation {} + Row {} + Translate {} + Scale {} + Text {} + TextEdit {} + TextInput {} + VisualItemModel {} + VisualDataModel {} + + Keys.onPressed: console.log("Press") +} diff --git a/tests/auto/declarative/moduleqt47/moduleqt47.pro b/tests/auto/declarative/moduleqt47/moduleqt47.pro new file mode 100644 index 0000000..4ee634e --- /dev/null +++ b/tests/auto/declarative/moduleqt47/moduleqt47.pro @@ -0,0 +1,16 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative gui +macx:CONFIG -= app_bundle + +SOURCES += tst_moduleqt47.cpp + +symbian: { + importFiles.sources = data + importFiles.path = . + DEPLOYMENT = importFiles +} else { + DEFINES += SRCDIR=\\\"$$PWD\\\" +} + +CONFIG += parallel_test + diff --git a/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp b/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp new file mode 100644 index 0000000..c1896a7 --- /dev/null +++ b/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include +#include + +#ifdef Q_OS_SYMBIAN +// In Symbian OS test data is located in applications private dir +#define SRCDIR "." +#endif + +class tst_moduleqt47 : public QObject +{ + Q_OBJECT +public: + tst_moduleqt47(); + +private slots: + void create(); + +private: + QDeclarativeEngine engine; +}; + +tst_moduleqt47::tst_moduleqt47() +{ +} + +void tst_moduleqt47::create() +{ + QDeclarativeEngine engine; + QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/importqt47.qml")); + QObject *obj = qobject_cast(c.create()); + + QVERIFY(obj != 0); + delete obj; +} + +QTEST_MAIN(tst_moduleqt47) + +#include "tst_moduleqt47.moc" diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp index ca7668d..7f81fc0 100644 --- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -1716,6 +1716,9 @@ void tst_qdeclarativelanguage::initTestCase() { registerTypes(); + // Registering the TestType class in other modules should have no adverse effects + qmlRegisterType("com.nokia.TestPre", 1, 0, "Test"); + qmlRegisterType("com.nokia.Test", 0, 0, "TestTP"); qmlRegisterType("com.nokia.Test", 1, 0, "Test"); qmlRegisterType("com.nokia.Test", 1, 5, "Test"); @@ -1723,6 +1726,9 @@ void tst_qdeclarativelanguage::initTestCase() qmlRegisterType("com.nokia.Test", 1, 9, "OldTest"); qmlRegisterType("com.nokia.Test", 1, 12, "Test"); + // Registering the TestType class in other modules should have no adverse effects + qmlRegisterType("com.nokia.TestPost", 1, 0, "Test"); + // Create locale-specific file // For POSIX, this will just be data/I18nType.qml, since POSIX is 7-bit // For iso8859-1 locale, this will just be data/I18nType?????.qml where ????? is 5 8-bit characters -- cgit v0.12 From 1f43e68c4ca5b28444b046deff1658b1b4b1923d Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 12:19:37 +1000 Subject: Replace "import Qt 4.7" with "import QtQuick 1.0" Task-number: QTBUG-13799 --- tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml b/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml index ab7fa84..35c1a9a 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml @@ -1,4 +1,4 @@ -import Qt 4.7 +import QtQuick 1.0 Item { id: wrapper -- cgit v0.12 From 1ab457d5db184c53d9857a7b425051e5aa5ff2e0 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 13:48:42 +1000 Subject: Document "import QtQuick 1.0" change Task-number: QTBUG-13799 --- doc/src/declarative/declarativeui.qdoc | 1 + doc/src/declarative/whatsnew.qdoc | 55 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 doc/src/declarative/whatsnew.qdoc diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index cb326a3..a8df4b1 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -73,6 +73,7 @@ Module. \section1 Getting Started \list +\o \l{What's new in Qt Quick} \o \l{Introduction to the QML language} \o \l{QML for Qt Programmers} \o \l{Getting Started Programming with QML} diff --git a/doc/src/declarative/whatsnew.qdoc b/doc/src/declarative/whatsnew.qdoc new file mode 100644 index 0000000..f8d1d0e --- /dev/null +++ b/doc/src/declarative/whatsnew.qdoc @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial Usage +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in a +** written agreement between you and Nokia. +** +** GNU Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of this +** file. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! +\title What's new in Qt Quick +\page qtquick-whatsnew.html + +\section1 4.7.1 + +\section2 QtQuick namespace + +In prior Qt releases, all the Qt Quick elements were available in the \e Qt namespace. +Starting with Qt 4.7.1, the elements are also available in the \e QtQuick namespace, +which improves naming consistency, and allows the development of Qt Quick to occur at +a faster rate than Qt's usual minor release schedule. + +The change for developers is very simple - where you previously wrote \e {import Qt 4.7}, +just replace it with \e {import QtQuick 1.0}, like this: + +\code +import QtQuick 1.0 + +Text { + text: "Welcome to QtQuick 1.0!" +} +\endcode + +\e {import Qt 4.7} continues to work so existing applications wont break even if they +aren't updated, but it is recommended that all import statements be modified to the new +form. +*/ -- cgit v0.12 From f7a439a0a00b0bdd6ebeff8bfd5ee2285eab1398 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 14:16:27 +1000 Subject: Autotest that new "import Qt 4.7"s aren't added accidentally Task-number: QTBUG-13799 --- .../auto/declarative/moduleqt47/tst_moduleqt47.cpp | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp b/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp index c1896a7..feae417 100644 --- a/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp +++ b/tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ #include +#include #include #include @@ -56,12 +57,20 @@ public: private slots: void create(); + void accidentalImport_data(); + void accidentalImport(); + private: + QStringList findFiles(const QDir &d); + QDeclarativeEngine engine; + QStringList excludedFiles; }; tst_moduleqt47::tst_moduleqt47() { + excludedFiles << "tests/auto/declarative/moduleqt47/data/importqt47.qml" + << "doc/src/declarative/whatsnew.qdoc"; } void tst_moduleqt47::create() @@ -74,6 +83,54 @@ void tst_moduleqt47::create() delete obj; } +QStringList tst_moduleqt47::findFiles(const QDir &d) +{ + QStringList rv; + + QStringList files = d.entryList(QStringList() << QLatin1String("*.qml") << QLatin1String("*.qdoc"), QDir::Files); + foreach (const QString &file, files) { + + QString absFile = d.absoluteFilePath(file); + + bool skip = false; + for (int ii = 0; !skip && ii < excludedFiles.count(); ++ii) + skip = (absFile.endsWith(excludedFiles.at(ii))); + + if (!skip) + rv << absFile; + } + + QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks); + foreach (const QString &dir, dirs) { + QDir sub = d; + sub.cd(dir); + rv << findFiles(sub); + } + + return rv; +} + +void tst_moduleqt47::accidentalImport_data() +{ + QTest::addColumn("file"); + QStringList files = findFiles(QDir(SRCDIR "/../../../../")); + + foreach(const QString &file, files) + QTest::newRow(qPrintable(file)) << file; +} + +void tst_moduleqt47::accidentalImport() +{ + QFETCH(QString, file); + + QFile f(file); + if (!f.open(QIODevice::ReadOnly)) + return; + QByteArray data = f.readAll(); + + QVERIFY(!data.contains("import Qt 4")); +} + QTEST_MAIN(tst_moduleqt47) #include "tst_moduleqt47.moc" -- cgit v0.12 From 58450781d958ce85abfb2b9c788652efa0d75e7e Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Wed, 29 Sep 2010 15:41:35 +1000 Subject: Recreate Qt 4.7 branch QtDeclarative def files on top of changes made to Qt 4.7.1 --- src/s60installs/bwins/QtDeclarativeu.def | 218 +++++++++++++++++------------ src/s60installs/eabi/QtDeclarativeu.def | 232 +++++++++++++++++++------------ 2 files changed, 269 insertions(+), 181 deletions(-) diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def index f417892..cf0398a 100644 --- a/src/s60installs/bwins/QtDeclarativeu.def +++ b/src/s60installs/bwins/QtDeclarativeu.def @@ -142,7 +142,7 @@ EXPORTS ?setEnumOrFlag@QMetaPropertyBuilder@@QAEX_N@Z @ 141 NONAME ; void QMetaPropertyBuilder::setEnumOrFlag(bool) ?getStaticMetaObject@QDeclarativeRectangle@@SAABUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const & QDeclarativeRectangle::getStaticMetaObject(void) ?isValid@QDeclarativeProperty@@QBE_NXZ @ 143 NONAME ; bool QDeclarativeProperty::isValid(void) const - ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 144 NONAME ; bool QDeclarativeDebugClient::isConnected(void) const + ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 144 NONAME ABSENT ; bool QDeclarativeDebugClient::isConnected(void) const ?enabled@QDeclarativeBinding@@QBE_NXZ @ 145 NONAME ; bool QDeclarativeBinding::enabled(void) const ?setSource@QDeclarativeView@@QAEXABVQUrl@@@Z @ 146 NONAME ; void QDeclarativeView::setSource(class QUrl const &) ??_EQDeclarativeDebugService@@UAE@I@Z @ 147 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(unsigned int) @@ -461,7 +461,7 @@ EXPORTS ?qt_metacall@QDeclarativeContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 460 NONAME ; int QDeclarativeContext::qt_metacall(enum QMetaObject::Call, int, void * *) ??_EQDeclarativeValueType@@UAE@I@Z @ 461 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(unsigned int) ?qt_metacall@QDeclarativeState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 462 NONAME ; int QDeclarativeState::qt_metacall(enum QMetaObject::Call, int, void * *) - ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ; bool QDeclarativeDebugService::isEnabled(void) const + ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ABSENT ; bool QDeclarativeDebugService::isEnabled(void) const ?stateChanged@QDeclarativeDebugWatch@@IAEXW4State@1@@Z @ 464 NONAME ; void QDeclarativeDebugWatch::stateChanged(enum QDeclarativeDebugWatch::State) ??0QMetaMethodBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 465 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(class QMetaObjectBuilder const *, int) ??4QDeclarativeListReference@@QAEAAV0@ABV0@@Z @ 466 NONAME ; class QDeclarativeListReference & QDeclarativeListReference::operator=(class QDeclarativeListReference const &) @@ -1028,7 +1028,7 @@ EXPORTS ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABVQDeclarativeError@@@Z @ 1027 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QDeclarativeError const &) ?staticMetaObject@QDeclarativeText@@2UQMetaObject@@B @ 1028 NONAME ; struct QMetaObject const QDeclarativeText::staticMetaObject ?color@QDeclarativeRectangle@@QBE?AVQColor@@XZ @ 1029 NONAME ; class QColor QDeclarativeRectangle::color(void) const - ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1030 NONAME ; bool QDeclarativeDebugClient::isEnabled(void) const + ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1030 NONAME ABSENT ; bool QDeclarativeDebugClient::isEnabled(void) const ?send@QPacketProtocol@@QAEXABVQPacket@@@Z @ 1031 NONAME ; void QPacketProtocol::send(class QPacket const &) ?width@QDeclarativePixmap@@QBEHXZ @ 1032 NONAME ; int QDeclarativePixmap::width(void) const ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserNode@@ABVQString@@@Z @ 1033 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserNode const &, class QString const &) @@ -1147,7 +1147,7 @@ EXPORTS ?removeNotifySignal@QMetaPropertyBuilder@@QAEXXZ @ 1146 NONAME ; void QMetaPropertyBuilder::removeNotifySignal(void) ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 1147 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *) ?setImportPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 1148 NONAME ; void QDeclarativeEngine::setImportPathList(class QStringList const &) - ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1149 NONAME ; void QDeclarativeDebugService::enabledChanged(bool) + ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1149 NONAME ABSENT ; void QDeclarativeDebugService::enabledChanged(bool) ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1150 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QObject *) ?asAST@Variant@QDeclarativeParser@@QBEPAVNode@AST@QDeclarativeJS@@XZ @ 1151 NONAME ; class QDeclarativeJS::AST::Node * QDeclarativeParser::Variant::asAST(void) const ?indexOfClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1152 NONAME ; int QMetaObjectBuilder::indexOfClassInfo(class QByteArray const &) @@ -1386,7 +1386,7 @@ EXPORTS ?qmlTypes@QDeclarativeMetaType@@SA?AV?$QList@PAVQDeclarativeType@@@@XZ @ 1385 NONAME ; class QList QDeclarativeMetaType::qmlTypes(void) ?valueTypeCoreIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1386 NONAME ; int QDeclarativePropertyPrivate::valueTypeCoreIndex(class QDeclarativeProperty const &) ?writeEnumProperty@QDeclarativePropertyPrivate@@SA_NABVQMetaProperty@@HPAVQObject@@ABVQVariant@@H@Z @ 1387 NONAME ; bool QDeclarativePropertyPrivate::writeEnumProperty(class QMetaProperty const &, int, class QObject *, class QVariant const &, int) - ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1388 NONAME ; void QDeclarativeDebugClient::setEnabled(bool) + ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1388 NONAME ABSENT ; void QDeclarativeDebugClient::setEnabled(bool) ??1QMetaObjectBuilder@@UAE@XZ @ 1389 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(void) ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 1390 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *) ?clear@QPacket@@QAEXXZ @ 1391 NONAME ; void QPacket::clear(void) @@ -1715,89 +1715,127 @@ EXPORTS ??0QDeclarativeListModel@@AAE@PBV0@PAVQDeclarativeListModelWorkerAgent@@@Z @ 1714 NONAME ; QDeclarativeListModel::QDeclarativeListModel(class QDeclarativeListModel const *, class QDeclarativeListModelWorkerAgent *) ?inWorkerThread@QDeclarativeListModel@@ABE_NXZ @ 1715 NONAME ; bool QDeclarativeListModel::inWorkerThread(void) const ?canMove@QDeclarativeListModel@@ABE_NHHH@Z @ 1716 NONAME ; bool QDeclarativeListModel::canMove(int, int, int) const - ?setLoops@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1717 NONAME ; void QDeclarativeAbstractAnimation::setLoops(int) - ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1718 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *) - ?staticMetaObject@QDeclarativeAbstractAnimation@@2UQMetaObject@@B @ 1719 NONAME ; struct QMetaObject const QDeclarativeAbstractAnimation::staticMetaObject - ?setRunning@QDeclarativeTimer@@QAEX_N@Z @ 1720 NONAME ; void QDeclarativeTimer::setRunning(bool) - ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1721 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *) - ?qt_metacall@QDeclarativeTimer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1722 NONAME ; int QDeclarativeTimer::qt_metacall(enum QMetaObject::Call, int, void * *) - ?setPaused@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1723 NONAME ; void QDeclarativeAbstractAnimation::setPaused(bool) - ?setRepeating@QDeclarativeTimer@@QAEX_N@Z @ 1724 NONAME ; void QDeclarativeTimer::setRepeating(bool) - ?interval@QDeclarativeTimer@@QBEHXZ @ 1725 NONAME ; int QDeclarativeTimer::interval(void) const - ?start@QDeclarativeTimer@@QAEXXZ @ 1726 NONAME ; void QDeclarativeTimer::start(void) - ?transition@QDeclarativeAbstractAnimation@@UAEXAAV?$QList@VQDeclarativeAction@@@@AAV?$QList@VQDeclarativeProperty@@@@W4TransitionDirection@1@@Z @ 1727 NONAME ; void QDeclarativeAbstractAnimation::transition(class QList &, class QList &, enum QDeclarativeAbstractAnimation::TransitionDirection) - ?componentComplete@QDeclarativeAbstractAnimation@@UAEXXZ @ 1728 NONAME ; void QDeclarativeAbstractAnimation::componentComplete(void) - ?runningChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1729 NONAME ; void QDeclarativeAbstractAnimation::runningChanged(bool) - ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1730 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *, int) - ?metaObject@QDeclarativeTimer@@UBEPBUQMetaObject@@XZ @ 1731 NONAME ; struct QMetaObject const * QDeclarativeTimer::metaObject(void) const - ?setGroup@QDeclarativeAbstractAnimation@@QAEXPAVQDeclarativeAnimationGroup@@@Z @ 1732 NONAME ; void QDeclarativeAbstractAnimation::setGroup(class QDeclarativeAnimationGroup *) - ?isRepeating@QDeclarativeTimer@@QBE_NXZ @ 1733 NONAME ; bool QDeclarativeTimer::isRepeating(void) const - ?setTriggeredOnStart@QDeclarativeTimer@@QAEX_N@Z @ 1734 NONAME ; void QDeclarativeTimer::setTriggeredOnStart(bool) - ?currentTime@QDeclarativeAbstractAnimation@@QAEHXZ @ 1735 NONAME ; int QDeclarativeAbstractAnimation::currentTime(void) - ??1QDeclarativeAbstractAnimation@@UAE@XZ @ 1736 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(void) - ?triggered@QDeclarativeTimer@@IAEXXZ @ 1737 NONAME ; void QDeclarativeTimer::triggered(void) - ?finished@QDeclarativeTimer@@AAEXXZ @ 1738 NONAME ; void QDeclarativeTimer::finished(void) - ?pausedChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1739 NONAME ; void QDeclarativeAbstractAnimation::pausedChanged(bool) - ?complete@QDeclarativeAbstractAnimation@@QAEXXZ @ 1740 NONAME ; void QDeclarativeAbstractAnimation::complete(void) - ?setRunning@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1741 NONAME ; void QDeclarativeAbstractAnimation::setRunning(bool) - ?completed@QDeclarativeAbstractAnimation@@IAEXXZ @ 1742 NONAME ; void QDeclarativeAbstractAnimation::completed(void) - ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1743 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *) - ?loopCountChanged@QDeclarativeAbstractAnimation@@IAEXH@Z @ 1744 NONAME ; void QDeclarativeAbstractAnimation::loopCountChanged(int) - ?repeatChanged@QDeclarativeTimer@@IAEXXZ @ 1745 NONAME ; void QDeclarativeTimer::repeatChanged(void) - ?setDisableUserControl@QDeclarativeAbstractAnimation@@QAEXXZ @ 1746 NONAME ; void QDeclarativeAbstractAnimation::setDisableUserControl(void) - ?setDefaultTarget@QDeclarativeAbstractAnimation@@QAEXABVQDeclarativeProperty@@@Z @ 1747 NONAME ; void QDeclarativeAbstractAnimation::setDefaultTarget(class QDeclarativeProperty const &) - ?triggeredOnStart@QDeclarativeTimer@@QBE_NXZ @ 1748 NONAME ; bool QDeclarativeTimer::triggeredOnStart(void) const - ?notifyRunningChanged@QDeclarativeAbstractAnimation@@AAEX_N@Z @ 1749 NONAME ; void QDeclarativeAbstractAnimation::notifyRunningChanged(bool) - ?componentComplete@QDeclarativeTimer@@MAEXXZ @ 1750 NONAME ; void QDeclarativeTimer::componentComplete(void) - ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1751 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *) - ?isRunning@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1752 NONAME ; bool QDeclarativeAbstractAnimation::isRunning(void) const - ?d_func@QDeclarativeAbstractAnimation@@ABEPBVQDeclarativeAbstractAnimationPrivate@@XZ @ 1753 NONAME ; class QDeclarativeAbstractAnimationPrivate const * QDeclarativeAbstractAnimation::d_func(void) const - ??_EQDeclarativeAbstractAnimation@@UAE@I@Z @ 1754 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(unsigned int) - ?d_func@QDeclarativeAbstractAnimation@@AAEPAVQDeclarativeAbstractAnimationPrivate@@XZ @ 1755 NONAME ; class QDeclarativeAbstractAnimationPrivate * QDeclarativeAbstractAnimation::d_func(void) - ?componentFinalized@QDeclarativeAbstractAnimation@@AAEXXZ @ 1756 NONAME ; void QDeclarativeAbstractAnimation::componentFinalized(void) - ??_EQDeclarativeTimer@@UAE@I@Z @ 1757 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(unsigned int) - ?pause@QDeclarativeAbstractAnimation@@QAEXXZ @ 1758 NONAME ; void QDeclarativeAbstractAnimation::pause(void) - ?stop@QDeclarativeTimer@@QAEXXZ @ 1759 NONAME ; void QDeclarativeTimer::stop(void) - ?timelineComplete@QDeclarativeAbstractAnimation@@AAEXXZ @ 1760 NONAME ; void QDeclarativeAbstractAnimation::timelineComplete(void) - ?setAlwaysRunToEnd@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1761 NONAME ; void QDeclarativeAbstractAnimation::setAlwaysRunToEnd(bool) - ?classBegin@QDeclarativeAbstractAnimation@@UAEXXZ @ 1762 NONAME ; void QDeclarativeAbstractAnimation::classBegin(void) - ?d_func@QDeclarativeTimer@@AAEPAVQDeclarativeTimerPrivate@@XZ @ 1763 NONAME ; class QDeclarativeTimerPrivate * QDeclarativeTimer::d_func(void) - ??0QDeclarativeAbstractAnimation@@QAE@PAVQObject@@@Z @ 1764 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QObject *) - ?metaObject@QDeclarativeAbstractAnimation@@UBEPBUQMetaObject@@XZ @ 1765 NONAME ; struct QMetaObject const * QDeclarativeAbstractAnimation::metaObject(void) const - ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1766 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *, int) - ?started@QDeclarativeAbstractAnimation@@IAEXXZ @ 1767 NONAME ; void QDeclarativeAbstractAnimation::started(void) - ?setInterval@QDeclarativeTimer@@QAEXH@Z @ 1768 NONAME ; void QDeclarativeTimer::setInterval(int) - ?d_func@QDeclarativeTimer@@ABEPBVQDeclarativeTimerPrivate@@XZ @ 1769 NONAME ; class QDeclarativeTimerPrivate const * QDeclarativeTimer::d_func(void) const - ?staticMetaObject@QDeclarativeTimer@@2UQMetaObject@@B @ 1770 NONAME ; struct QMetaObject const QDeclarativeTimer::staticMetaObject - ?qt_metacast@QDeclarativeAbstractAnimation@@UAEPAXPBD@Z @ 1771 NONAME ; void * QDeclarativeAbstractAnimation::qt_metacast(char const *) - ?setCurrentTime@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1772 NONAME ; void QDeclarativeAbstractAnimation::setCurrentTime(int) - ?restart@QDeclarativeAbstractAnimation@@QAEXXZ @ 1773 NONAME ; void QDeclarativeAbstractAnimation::restart(void) - ??0QDeclarativeAbstractAnimation@@IAE@AAVQDeclarativeAbstractAnimationPrivate@@PAVQObject@@@Z @ 1774 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QDeclarativeAbstractAnimationPrivate &, class QObject *) - ?resume@QDeclarativeAbstractAnimation@@QAEXXZ @ 1775 NONAME ; void QDeclarativeAbstractAnimation::resume(void) - ?runningChanged@QDeclarativeTimer@@IAEXXZ @ 1776 NONAME ; void QDeclarativeTimer::runningChanged(void) - ?ticked@QDeclarativeTimer@@AAEXXZ @ 1777 NONAME ; void QDeclarativeTimer::ticked(void) - ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1778 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *, int) - ??0QDeclarativeTimer@@QAE@PAVQObject@@@Z @ 1779 NONAME ; QDeclarativeTimer::QDeclarativeTimer(class QObject *) - ?loops@QDeclarativeAbstractAnimation@@QBEHXZ @ 1780 NONAME ; int QDeclarativeAbstractAnimation::loops(void) const - ?setTarget@QDeclarativeAbstractAnimation@@EAEXABVQDeclarativeProperty@@@Z @ 1781 NONAME ; void QDeclarativeAbstractAnimation::setTarget(class QDeclarativeProperty const &) - ?alwaysRunToEnd@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1782 NONAME ; bool QDeclarativeAbstractAnimation::alwaysRunToEnd(void) const - ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1783 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *, int) - ?intervalChanged@QDeclarativeTimer@@IAEXXZ @ 1784 NONAME ; void QDeclarativeTimer::intervalChanged(void) - ?isPaused@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1785 NONAME ; bool QDeclarativeAbstractAnimation::isPaused(void) const - ?getStaticMetaObject@QDeclarativeAbstractAnimation@@SAABUQMetaObject@@XZ @ 1786 NONAME ; struct QMetaObject const & QDeclarativeAbstractAnimation::getStaticMetaObject(void) - ?group@QDeclarativeAbstractAnimation@@QBEPAVQDeclarativeAnimationGroup@@XZ @ 1787 NONAME ; class QDeclarativeAnimationGroup * QDeclarativeAbstractAnimation::group(void) const - ?classBegin@QDeclarativeTimer@@MAEXXZ @ 1788 NONAME ; void QDeclarativeTimer::classBegin(void) - ?restart@QDeclarativeTimer@@QAEXXZ @ 1789 NONAME ; void QDeclarativeTimer::restart(void) - ??1QDeclarativeTimer@@UAE@XZ @ 1790 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(void) - ?getStaticMetaObject@QDeclarativeTimer@@SAABUQMetaObject@@XZ @ 1791 NONAME ; struct QMetaObject const & QDeclarativeTimer::getStaticMetaObject(void) - ?qt_metacast@QDeclarativeTimer@@UAEPAXPBD@Z @ 1792 NONAME ; void * QDeclarativeTimer::qt_metacast(char const *) - ?alwaysRunToEndChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1793 NONAME ; void QDeclarativeAbstractAnimation::alwaysRunToEndChanged(bool) - ?triggeredOnStartChanged@QDeclarativeTimer@@IAEXXZ @ 1794 NONAME ; void QDeclarativeTimer::triggeredOnStartChanged(void) - ?isRunning@QDeclarativeTimer@@QBE_NXZ @ 1795 NONAME ; bool QDeclarativeTimer::isRunning(void) const - ?update@QDeclarativeTimer@@AAEXXZ @ 1796 NONAME ; void QDeclarativeTimer::update(void) - ?stop@QDeclarativeAbstractAnimation@@QAEXXZ @ 1797 NONAME ; void QDeclarativeAbstractAnimation::stop(void) - ?start@QDeclarativeAbstractAnimation@@QAEXXZ @ 1798 NONAME ; void QDeclarativeAbstractAnimation::start(void) - ?qt_metacall@QDeclarativeAbstractAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1799 NONAME ; int QDeclarativeAbstractAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) - ?getScriptEngine@QDeclarativeDebugHelper@@SAPAVQScriptEngine@@PAVQDeclarativeEngine@@@Z @ 1800 NONAME ; class QScriptEngine * QDeclarativeDebugHelper::getScriptEngine(class QDeclarativeEngine *) - ?setAnimationSlowDownFactor@QDeclarativeDebugHelper@@SAXM@Z @ 1801 NONAME ; void QDeclarativeDebugHelper::setAnimationSlowDownFactor(float) + ?getScriptEngine@QDeclarativeDebugHelper@@SAPAVQScriptEngine@@PAVQDeclarativeEngine@@@Z @ 1717 NONAME ; class QScriptEngine * QDeclarativeDebugHelper::getScriptEngine(class QDeclarativeEngine *) + ?setAnimationSlowDownFactor@QDeclarativeDebugHelper@@SAXM@Z @ 1718 NONAME ; void QDeclarativeDebugHelper::setAnimationSlowDownFactor(float) + ?add@QDeclarativeBasePositioner@@QBEPAVQDeclarativeTransition@@XZ @ 1719 NONAME ; class QDeclarativeTransition * QDeclarativeBasePositioner::add(void) const + ?setLoops@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1720 NONAME ; void QDeclarativeAbstractAnimation::setLoops(int) + ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1721 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *) + ?tr@QDeclarativeBasePositioner@@SA?AVQString@@PBD0@Z @ 1722 NONAME ; class QString QDeclarativeBasePositioner::tr(char const *, char const *) + ?staticMetaObject@QDeclarativeAbstractAnimation@@2UQMetaObject@@B @ 1723 NONAME ; struct QMetaObject const QDeclarativeAbstractAnimation::staticMetaObject + ?setMove@QDeclarativeBasePositioner@@QAEXPAVQDeclarativeTransition@@@Z @ 1724 NONAME ; void QDeclarativeBasePositioner::setMove(class QDeclarativeTransition *) + ?setRunning@QDeclarativeTimer@@QAEX_N@Z @ 1725 NONAME ; void QDeclarativeTimer::setRunning(bool) + ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1726 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *) + ?qt_metacall@QDeclarativeTimer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1727 NONAME ; int QDeclarativeTimer::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setPaused@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1728 NONAME ; void QDeclarativeAbstractAnimation::setPaused(bool) + ?d_func@QDeclarativeBasePositioner@@ABEPBVQDeclarativeBasePositionerPrivate@@XZ @ 1729 NONAME ; class QDeclarativeBasePositionerPrivate const * QDeclarativeBasePositioner::d_func(void) const + ?setRepeating@QDeclarativeTimer@@QAEX_N@Z @ 1730 NONAME ; void QDeclarativeTimer::setRepeating(bool) + ?interval@QDeclarativeTimer@@QBEHXZ @ 1731 NONAME ; int QDeclarativeTimer::interval(void) const + ?start@QDeclarativeTimer@@QAEXXZ @ 1732 NONAME ; void QDeclarativeTimer::start(void) + ?transition@QDeclarativeAbstractAnimation@@UAEXAAV?$QList@VQDeclarativeAction@@@@AAV?$QList@VQDeclarativeProperty@@@@W4TransitionDirection@1@@Z @ 1733 NONAME ; void QDeclarativeAbstractAnimation::transition(class QList &, class QList &, enum QDeclarativeAbstractAnimation::TransitionDirection) + ?componentComplete@QDeclarativeAbstractAnimation@@UAEXXZ @ 1734 NONAME ; void QDeclarativeAbstractAnimation::componentComplete(void) + ?statusChanged@QDeclarativeDebugService@@MAEXW4Status@1@@Z @ 1735 NONAME ; void QDeclarativeDebugService::statusChanged(enum QDeclarativeDebugService::Status) + ?runningChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1736 NONAME ; void QDeclarativeAbstractAnimation::runningChanged(bool) + ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1737 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *, int) + ??_EQDeclarativeBasePositioner@@UAE@I@Z @ 1738 NONAME ; QDeclarativeBasePositioner::~QDeclarativeBasePositioner(unsigned int) + ?metaObject@QDeclarativeTimer@@UBEPBUQMetaObject@@XZ @ 1739 NONAME ; struct QMetaObject const * QDeclarativeTimer::metaObject(void) const + ?setGroup@QDeclarativeAbstractAnimation@@QAEXPAVQDeclarativeAnimationGroup@@@Z @ 1740 NONAME ; void QDeclarativeAbstractAnimation::setGroup(class QDeclarativeAnimationGroup *) + ?isRepeating@QDeclarativeTimer@@QBE_NXZ @ 1741 NONAME ; bool QDeclarativeTimer::isRepeating(void) const + ?setTriggeredOnStart@QDeclarativeTimer@@QAEX_N@Z @ 1742 NONAME ; void QDeclarativeTimer::setTriggeredOnStart(bool) + ?currentTime@QDeclarativeAbstractAnimation@@QAEHXZ @ 1743 NONAME ; int QDeclarativeAbstractAnimation::currentTime(void) + ?status@QDeclarativeEngineDebug@@QBE?AW4Status@1@XZ @ 1744 NONAME ; enum QDeclarativeEngineDebug::Status QDeclarativeEngineDebug::status(void) const + ??1QDeclarativeAbstractAnimation@@UAE@XZ @ 1745 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(void) + ?triggered@QDeclarativeTimer@@IAEXXZ @ 1746 NONAME ; void QDeclarativeTimer::triggered(void) + ?getStaticMetaObject@QDeclarativeBasePositioner@@SAABUQMetaObject@@XZ @ 1747 NONAME ; struct QMetaObject const & QDeclarativeBasePositioner::getStaticMetaObject(void) + ?finished@QDeclarativeTimer@@AAEXXZ @ 1748 NONAME ; void QDeclarativeTimer::finished(void) + ?pausedChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1749 NONAME ; void QDeclarativeAbstractAnimation::pausedChanged(bool) + ?complete@QDeclarativeAbstractAnimation@@QAEXXZ @ 1750 NONAME ; void QDeclarativeAbstractAnimation::complete(void) + ?setRunning@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1751 NONAME ; void QDeclarativeAbstractAnimation::setRunning(bool) + ?trUtf8@QDeclarativeBasePositioner@@SA?AVQString@@PBD0H@Z @ 1752 NONAME ; class QString QDeclarativeBasePositioner::trUtf8(char const *, char const *, int) + ?trUtf8@QDeclarativeBasePositioner@@SA?AVQString@@PBD0@Z @ 1753 NONAME ; class QString QDeclarativeBasePositioner::trUtf8(char const *, char const *) + ?completed@QDeclarativeAbstractAnimation@@IAEXXZ @ 1754 NONAME ; void QDeclarativeAbstractAnimation::completed(void) + ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1755 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *) + ?loopCountChanged@QDeclarativeAbstractAnimation@@IAEXH@Z @ 1756 NONAME ; void QDeclarativeAbstractAnimation::loopCountChanged(int) + ?repeatChanged@QDeclarativeTimer@@IAEXXZ @ 1757 NONAME ; void QDeclarativeTimer::repeatChanged(void) + ?setDisableUserControl@QDeclarativeAbstractAnimation@@QAEXXZ @ 1758 NONAME ; void QDeclarativeAbstractAnimation::setDisableUserControl(void) + ?componentComplete@QDeclarativeBasePositioner@@MAEXXZ @ 1759 NONAME ; void QDeclarativeBasePositioner::componentComplete(void) + ?setDefaultTarget@QDeclarativeAbstractAnimation@@QAEXABVQDeclarativeProperty@@@Z @ 1760 NONAME ; void QDeclarativeAbstractAnimation::setDefaultTarget(class QDeclarativeProperty const &) + ?staticMetaObject@QDeclarativeBasePositioner@@2UQMetaObject@@B @ 1761 NONAME ; struct QMetaObject const QDeclarativeBasePositioner::staticMetaObject + ?triggeredOnStart@QDeclarativeTimer@@QBE_NXZ @ 1762 NONAME ; bool QDeclarativeTimer::triggeredOnStart(void) const + ?notifyRunningChanged@QDeclarativeAbstractAnimation@@AAEX_N@Z @ 1763 NONAME ; void QDeclarativeAbstractAnimation::notifyRunningChanged(bool) + ?statusChanged@QDeclarativeDebugClient@@MAEXW4Status@1@@Z @ 1764 NONAME ; void QDeclarativeDebugClient::statusChanged(enum QDeclarativeDebugClient::Status) + ??0QDeclarativeBasePositioner@@IAE@AAVQDeclarativeBasePositionerPrivate@@W4PositionerType@0@PAVQDeclarativeItem@@@Z @ 1765 NONAME ; QDeclarativeBasePositioner::QDeclarativeBasePositioner(class QDeclarativeBasePositionerPrivate &, enum QDeclarativeBasePositioner::PositionerType, class QDeclarativeItem *) + ?componentComplete@QDeclarativeTimer@@MAEXXZ @ 1766 NONAME ; void QDeclarativeTimer::componentComplete(void) + ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1767 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *) + ?isRunning@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1768 NONAME ; bool QDeclarativeAbstractAnimation::isRunning(void) const + ?d_func@QDeclarativeAbstractAnimation@@ABEPBVQDeclarativeAbstractAnimationPrivate@@XZ @ 1769 NONAME ; class QDeclarativeAbstractAnimationPrivate const * QDeclarativeAbstractAnimation::d_func(void) const + ??_EQDeclarativeAbstractAnimation@@UAE@I@Z @ 1770 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(unsigned int) + ??0QDeclarativeBasePositioner@@QAE@W4PositionerType@0@PAVQDeclarativeItem@@@Z @ 1771 NONAME ; QDeclarativeBasePositioner::QDeclarativeBasePositioner(enum QDeclarativeBasePositioner::PositionerType, class QDeclarativeItem *) + ?qt_metacall@QDeclarativeBasePositioner@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1772 NONAME ; int QDeclarativeBasePositioner::qt_metacall(enum QMetaObject::Call, int, void * *) + ?status@QDeclarativeDebugClient@@QBE?AW4Status@1@XZ @ 1773 NONAME ; enum QDeclarativeDebugClient::Status QDeclarativeDebugClient::status(void) const + ?prePositioning@QDeclarativeBasePositioner@@IAEXXZ @ 1774 NONAME ; void QDeclarativeBasePositioner::prePositioning(void) + ?finishApplyTransitions@QDeclarativeBasePositioner@@IAEXXZ @ 1775 NONAME ; void QDeclarativeBasePositioner::finishApplyTransitions(void) + ?d_func@QDeclarativeAbstractAnimation@@AAEPAVQDeclarativeAbstractAnimationPrivate@@XZ @ 1776 NONAME ; class QDeclarativeAbstractAnimationPrivate * QDeclarativeAbstractAnimation::d_func(void) + ?componentFinalized@QDeclarativeAbstractAnimation@@AAEXXZ @ 1777 NONAME ; void QDeclarativeAbstractAnimation::componentFinalized(void) + ??_EQDeclarativeTimer@@UAE@I@Z @ 1778 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(unsigned int) + ?pause@QDeclarativeAbstractAnimation@@QAEXXZ @ 1779 NONAME ; void QDeclarativeAbstractAnimation::pause(void) + ?stop@QDeclarativeTimer@@QAEXXZ @ 1780 NONAME ; void QDeclarativeTimer::stop(void) + ?timelineComplete@QDeclarativeAbstractAnimation@@AAEXXZ @ 1781 NONAME ; void QDeclarativeAbstractAnimation::timelineComplete(void) + ?d_func@QDeclarativeBasePositioner@@AAEPAVQDeclarativeBasePositionerPrivate@@XZ @ 1782 NONAME ; class QDeclarativeBasePositionerPrivate * QDeclarativeBasePositioner::d_func(void) + ?setAlwaysRunToEnd@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1783 NONAME ; void QDeclarativeAbstractAnimation::setAlwaysRunToEnd(bool) + ?classBegin@QDeclarativeAbstractAnimation@@UAEXXZ @ 1784 NONAME ; void QDeclarativeAbstractAnimation::classBegin(void) + ?d_func@QDeclarativeTimer@@AAEPAVQDeclarativeTimerPrivate@@XZ @ 1785 NONAME ; class QDeclarativeTimerPrivate * QDeclarativeTimer::d_func(void) + ?spacing@QDeclarativeBasePositioner@@QBEHXZ @ 1786 NONAME ; int QDeclarativeBasePositioner::spacing(void) const + ??0QDeclarativeAbstractAnimation@@QAE@PAVQObject@@@Z @ 1787 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QObject *) + ?metaObject@QDeclarativeAbstractAnimation@@UBEPBUQMetaObject@@XZ @ 1788 NONAME ; struct QMetaObject const * QDeclarativeAbstractAnimation::metaObject(void) const + ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1789 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *, int) + ?started@QDeclarativeAbstractAnimation@@IAEXXZ @ 1790 NONAME ; void QDeclarativeAbstractAnimation::started(void) + ?setInterval@QDeclarativeTimer@@QAEXH@Z @ 1791 NONAME ; void QDeclarativeTimer::setInterval(int) + ?statusChanged@QDeclarativeEngineDebug@@IAEXW4Status@1@@Z @ 1792 NONAME ; void QDeclarativeEngineDebug::statusChanged(enum QDeclarativeEngineDebug::Status) + ?d_func@QDeclarativeTimer@@ABEPBVQDeclarativeTimerPrivate@@XZ @ 1793 NONAME ; class QDeclarativeTimerPrivate const * QDeclarativeTimer::d_func(void) const + ?setSpacing@QDeclarativeBasePositioner@@QAEXH@Z @ 1794 NONAME ; void QDeclarativeBasePositioner::setSpacing(int) + ?staticMetaObject@QDeclarativeTimer@@2UQMetaObject@@B @ 1795 NONAME ; struct QMetaObject const QDeclarativeTimer::staticMetaObject + ?positionY@QDeclarativeBasePositioner@@IAEXHABVPositionedItem@1@@Z @ 1796 NONAME ; void QDeclarativeBasePositioner::positionY(int, class QDeclarativeBasePositioner::PositionedItem const &) + ?qt_metacast@QDeclarativeAbstractAnimation@@UAEPAXPBD@Z @ 1797 NONAME ; void * QDeclarativeAbstractAnimation::qt_metacast(char const *) + ?setAdd@QDeclarativeBasePositioner@@QAEXPAVQDeclarativeTransition@@@Z @ 1798 NONAME ; void QDeclarativeBasePositioner::setAdd(class QDeclarativeTransition *) + ?setCurrentTime@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1799 NONAME ; void QDeclarativeAbstractAnimation::setCurrentTime(int) + ?attachedPropertiesId@QDeclarativeType@@QBEHXZ @ 1800 NONAME ; int QDeclarativeType::attachedPropertiesId(void) const + ?positionX@QDeclarativeBasePositioner@@IAEXHABVPositionedItem@1@@Z @ 1801 NONAME ; void QDeclarativeBasePositioner::positionX(int, class QDeclarativeBasePositioner::PositionedItem const &) + ?restart@QDeclarativeAbstractAnimation@@QAEXXZ @ 1802 NONAME ; void QDeclarativeAbstractAnimation::restart(void) + ?itemChange@QDeclarativeBasePositioner@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 1803 NONAME ; class QVariant QDeclarativeBasePositioner::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) + ??0QDeclarativeAbstractAnimation@@IAE@AAVQDeclarativeAbstractAnimationPrivate@@PAVQObject@@@Z @ 1804 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QDeclarativeAbstractAnimationPrivate &, class QObject *) + ?resume@QDeclarativeAbstractAnimation@@QAEXXZ @ 1805 NONAME ; void QDeclarativeAbstractAnimation::resume(void) + ?runningChanged@QDeclarativeTimer@@IAEXXZ @ 1806 NONAME ; void QDeclarativeTimer::runningChanged(void) + ?ticked@QDeclarativeTimer@@AAEXXZ @ 1807 NONAME ; void QDeclarativeTimer::ticked(void) + ?graphicsWidgetGeometryChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1808 NONAME ; void QDeclarativeBasePositioner::graphicsWidgetGeometryChanged(void) + ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1809 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *, int) + ??0QDeclarativeTimer@@QAE@PAVQObject@@@Z @ 1810 NONAME ; QDeclarativeTimer::QDeclarativeTimer(class QObject *) + ?loops@QDeclarativeAbstractAnimation@@QBEHXZ @ 1811 NONAME ; int QDeclarativeAbstractAnimation::loops(void) const + ?setTarget@QDeclarativeAbstractAnimation@@EAEXABVQDeclarativeProperty@@@Z @ 1812 NONAME ; void QDeclarativeAbstractAnimation::setTarget(class QDeclarativeProperty const &) + ?alwaysRunToEnd@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1813 NONAME ; bool QDeclarativeAbstractAnimation::alwaysRunToEnd(void) const + ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1814 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *, int) + ?status@QDeclarativeDebugService@@QBE?AW4Status@1@XZ @ 1815 NONAME ; enum QDeclarativeDebugService::Status QDeclarativeDebugService::status(void) const + ?intervalChanged@QDeclarativeTimer@@IAEXXZ @ 1816 NONAME ; void QDeclarativeTimer::intervalChanged(void) + ?isPaused@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1817 NONAME ; bool QDeclarativeAbstractAnimation::isPaused(void) const + ?getStaticMetaObject@QDeclarativeAbstractAnimation@@SAABUQMetaObject@@XZ @ 1818 NONAME ; struct QMetaObject const & QDeclarativeAbstractAnimation::getStaticMetaObject(void) + ?group@QDeclarativeAbstractAnimation@@QBEPAVQDeclarativeAnimationGroup@@XZ @ 1819 NONAME ; class QDeclarativeAnimationGroup * QDeclarativeAbstractAnimation::group(void) const + ?classBegin@QDeclarativeTimer@@MAEXXZ @ 1820 NONAME ; void QDeclarativeTimer::classBegin(void) + ?restart@QDeclarativeTimer@@QAEXXZ @ 1821 NONAME ; void QDeclarativeTimer::restart(void) + ?move@QDeclarativeBasePositioner@@QBEPAVQDeclarativeTransition@@XZ @ 1822 NONAME ; class QDeclarativeTransition * QDeclarativeBasePositioner::move(void) const + ?spacingChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1823 NONAME ; void QDeclarativeBasePositioner::spacingChanged(void) + ?qt_metacast@QDeclarativeBasePositioner@@UAEPAXPBD@Z @ 1824 NONAME ; void * QDeclarativeBasePositioner::qt_metacast(char const *) + ??1QDeclarativeTimer@@UAE@XZ @ 1825 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(void) + ?getStaticMetaObject@QDeclarativeTimer@@SAABUQMetaObject@@XZ @ 1826 NONAME ; struct QMetaObject const & QDeclarativeTimer::getStaticMetaObject(void) + ?tr@QDeclarativeBasePositioner@@SA?AVQString@@PBD0H@Z @ 1827 NONAME ; class QString QDeclarativeBasePositioner::tr(char const *, char const *, int) + ??1QDeclarativeBasePositioner@@UAE@XZ @ 1828 NONAME ; QDeclarativeBasePositioner::~QDeclarativeBasePositioner(void) + ?moveChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1829 NONAME ; void QDeclarativeBasePositioner::moveChanged(void) + ?qt_metacast@QDeclarativeTimer@@UAEPAXPBD@Z @ 1830 NONAME ; void * QDeclarativeTimer::qt_metacast(char const *) + ?metaObject@QDeclarativeBasePositioner@@UBEPBUQMetaObject@@XZ @ 1831 NONAME ; struct QMetaObject const * QDeclarativeBasePositioner::metaObject(void) const + ?alwaysRunToEndChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1832 NONAME ; void QDeclarativeAbstractAnimation::alwaysRunToEndChanged(bool) + ?triggeredOnStartChanged@QDeclarativeTimer@@IAEXXZ @ 1833 NONAME ; void QDeclarativeTimer::triggeredOnStartChanged(void) + ?isRunning@QDeclarativeTimer@@QBE_NXZ @ 1834 NONAME ; bool QDeclarativeTimer::isRunning(void) const + ?update@QDeclarativeTimer@@AAEXXZ @ 1835 NONAME ; void QDeclarativeTimer::update(void) + ?stop@QDeclarativeAbstractAnimation@@QAEXXZ @ 1836 NONAME ; void QDeclarativeAbstractAnimation::stop(void) + ?addChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1837 NONAME ; void QDeclarativeBasePositioner::addChanged(void) + ?start@QDeclarativeAbstractAnimation@@QAEXXZ @ 1838 NONAME ; void QDeclarativeAbstractAnimation::start(void) + ?qt_metacall@QDeclarativeAbstractAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1839 NONAME ; int QDeclarativeAbstractAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index c4cd9b6..d4084cc 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -673,7 +673,7 @@ EXPORTS _ZN22QDeclarativeTransitionD0Ev @ 672 NONAME _ZN22QDeclarativeTransitionD1Ev @ 673 NONAME _ZN22QDeclarativeTransitionD2Ev @ 674 NONAME - _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME + _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME ABSENT _ZN23QDeclarativeDebugClient11qt_metacallEN11QMetaObject4CallEiPPv @ 676 NONAME _ZN23QDeclarativeDebugClient11qt_metacastEPKc @ 677 NONAME _ZN23QDeclarativeDebugClient11sendMessageERK10QByteArray @ 678 NONAME @@ -766,7 +766,7 @@ EXPORTS _ZN24QDeclarativeDebugService11qt_metacallEN11QMetaObject4CallEiPPv @ 765 NONAME _ZN24QDeclarativeDebugService11qt_metacastEPKc @ 766 NONAME _ZN24QDeclarativeDebugService11sendMessageERK10QByteArray @ 767 NONAME - _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME + _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME ABSENT _ZN24QDeclarativeDebugService14objectToStringEP7QObject @ 769 NONAME _ZN24QDeclarativeDebugService15messageReceivedERK10QByteArray @ 770 NONAME _ZN24QDeclarativeDebugService16staticMetaObjectE @ 771 NONAME DATA 16 @@ -1390,9 +1390,9 @@ EXPORTS _ZNK22QDeclarativeTransition7toStateEv @ 1389 NONAME _ZNK22QDeclarativeTransition9fromStateEv @ 1390 NONAME _ZNK23QDeclarativeDebugClient10metaObjectEv @ 1391 NONAME - _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME + _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME ABSENT _ZNK23QDeclarativeDebugClient4nameEv @ 1393 NONAME - _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME + _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME ABSENT _ZNK23QDeclarativeDomDocument10rootObjectEv @ 1395 NONAME _ZNK23QDeclarativeDomDocument6errorsEv @ 1396 NONAME _ZNK23QDeclarativeDomDocument7importsEv @ 1397 NONAME @@ -1427,7 +1427,7 @@ EXPORTS _ZNK24QDeclarativeCustomParser12evaluateEnumERK10QByteArray @ 1426 NONAME _ZNK24QDeclarativeDebugService10metaObjectEv @ 1427 NONAME _ZNK24QDeclarativeDebugService4nameEv @ 1428 NONAME - _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME + _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME ABSENT _ZNK24QDeclarativeDomComponent13componentRootEv @ 1430 NONAME _ZNK24QDeclarativeScriptString11scopeObjectEv @ 1431 NONAME _ZNK24QDeclarativeScriptString6scriptEv @ 1432 NONAME @@ -1747,90 +1747,140 @@ EXPORTS _ZN21QDeclarativeListModelC1EPKS_P32QDeclarativeListModelWorkerAgent @ 1746 NONAME _ZN21QDeclarativeListModelC2EPKS_P32QDeclarativeListModelWorkerAgent @ 1747 NONAME _ZNK21QDeclarativeListModel14inWorkerThreadEv @ 1748 NONAME - _ZN17QDeclarativeTimer10classBeginEv @ 1749 NONAME - _ZN17QDeclarativeTimer10setRunningEb @ 1750 NONAME - _ZN17QDeclarativeTimer11qt_metacallEN11QMetaObject4CallEiPPv @ 1751 NONAME - _ZN17QDeclarativeTimer11qt_metacastEPKc @ 1752 NONAME - _ZN17QDeclarativeTimer11setIntervalEi @ 1753 NONAME - _ZN17QDeclarativeTimer12setRepeatingEb @ 1754 NONAME - _ZN17QDeclarativeTimer13repeatChangedEv @ 1755 NONAME - _ZN17QDeclarativeTimer14runningChangedEv @ 1756 NONAME - _ZN17QDeclarativeTimer15intervalChangedEv @ 1757 NONAME - _ZN17QDeclarativeTimer16staticMetaObjectE @ 1758 NONAME DATA 16 - _ZN17QDeclarativeTimer17componentCompleteEv @ 1759 NONAME - _ZN17QDeclarativeTimer19getStaticMetaObjectEv @ 1760 NONAME - _ZN17QDeclarativeTimer19setTriggeredOnStartEb @ 1761 NONAME - _ZN17QDeclarativeTimer23triggeredOnStartChangedEv @ 1762 NONAME - _ZN17QDeclarativeTimer4stopEv @ 1763 NONAME - _ZN17QDeclarativeTimer5startEv @ 1764 NONAME - _ZN17QDeclarativeTimer6tickedEv @ 1765 NONAME - _ZN17QDeclarativeTimer6updateEv @ 1766 NONAME - _ZN17QDeclarativeTimer7restartEv @ 1767 NONAME - _ZN17QDeclarativeTimer8finishedEv @ 1768 NONAME - _ZN17QDeclarativeTimer9triggeredEv @ 1769 NONAME - _ZN17QDeclarativeTimerC1EP7QObject @ 1770 NONAME - _ZN17QDeclarativeTimerC2EP7QObject @ 1771 NONAME - _ZN29QDeclarativeAbstractAnimation10classBeginEv @ 1772 NONAME - _ZN29QDeclarativeAbstractAnimation10setRunningEb @ 1773 NONAME - _ZN29QDeclarativeAbstractAnimation10transitionER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyENS_19TransitionDirectionE @ 1774 NONAME - _ZN29QDeclarativeAbstractAnimation11currentTimeEv @ 1775 NONAME - _ZN29QDeclarativeAbstractAnimation11qt_metacallEN11QMetaObject4CallEiPPv @ 1776 NONAME - _ZN29QDeclarativeAbstractAnimation11qt_metacastEPKc @ 1777 NONAME - _ZN29QDeclarativeAbstractAnimation13pausedChangedEb @ 1778 NONAME - _ZN29QDeclarativeAbstractAnimation14runningChangedEb @ 1779 NONAME - _ZN29QDeclarativeAbstractAnimation14setCurrentTimeEi @ 1780 NONAME - _ZN29QDeclarativeAbstractAnimation16loopCountChangedEi @ 1781 NONAME - _ZN29QDeclarativeAbstractAnimation16setDefaultTargetERK20QDeclarativeProperty @ 1782 NONAME - _ZN29QDeclarativeAbstractAnimation16staticMetaObjectE @ 1783 NONAME DATA 16 - _ZN29QDeclarativeAbstractAnimation16timelineCompleteEv @ 1784 NONAME - _ZN29QDeclarativeAbstractAnimation17componentCompleteEv @ 1785 NONAME - _ZN29QDeclarativeAbstractAnimation17setAlwaysRunToEndEb @ 1786 NONAME - _ZN29QDeclarativeAbstractAnimation18componentFinalizedEv @ 1787 NONAME - _ZN29QDeclarativeAbstractAnimation19getStaticMetaObjectEv @ 1788 NONAME - _ZN29QDeclarativeAbstractAnimation20notifyRunningChangedEb @ 1789 NONAME - _ZN29QDeclarativeAbstractAnimation21alwaysRunToEndChangedEb @ 1790 NONAME - _ZN29QDeclarativeAbstractAnimation21setDisableUserControlEv @ 1791 NONAME - _ZN29QDeclarativeAbstractAnimation4stopEv @ 1792 NONAME - _ZN29QDeclarativeAbstractAnimation5pauseEv @ 1793 NONAME - _ZN29QDeclarativeAbstractAnimation5startEv @ 1794 NONAME - _ZN29QDeclarativeAbstractAnimation6resumeEv @ 1795 NONAME - _ZN29QDeclarativeAbstractAnimation7restartEv @ 1796 NONAME - _ZN29QDeclarativeAbstractAnimation7startedEv @ 1797 NONAME - _ZN29QDeclarativeAbstractAnimation8completeEv @ 1798 NONAME - _ZN29QDeclarativeAbstractAnimation8setGroupEP26QDeclarativeAnimationGroup @ 1799 NONAME - _ZN29QDeclarativeAbstractAnimation8setLoopsEi @ 1800 NONAME - _ZN29QDeclarativeAbstractAnimation9completedEv @ 1801 NONAME - _ZN29QDeclarativeAbstractAnimation9setPausedEb @ 1802 NONAME - _ZN29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1803 NONAME - _ZN29QDeclarativeAbstractAnimationC2EP7QObject @ 1804 NONAME - _ZN29QDeclarativeAbstractAnimationC2ER36QDeclarativeAbstractAnimationPrivateP7QObject @ 1805 NONAME - _ZN29QDeclarativeAbstractAnimationD0Ev @ 1806 NONAME - _ZN29QDeclarativeAbstractAnimationD1Ev @ 1807 NONAME - _ZN29QDeclarativeAbstractAnimationD2Ev @ 1808 NONAME - _ZNK17QDeclarativeTimer10metaObjectEv @ 1809 NONAME - _ZNK17QDeclarativeTimer11isRepeatingEv @ 1810 NONAME - _ZNK17QDeclarativeTimer16triggeredOnStartEv @ 1811 NONAME - _ZNK17QDeclarativeTimer8intervalEv @ 1812 NONAME - _ZNK17QDeclarativeTimer9isRunningEv @ 1813 NONAME - _ZNK29QDeclarativeAbstractAnimation10metaObjectEv @ 1814 NONAME - _ZNK29QDeclarativeAbstractAnimation14alwaysRunToEndEv @ 1815 NONAME - _ZNK29QDeclarativeAbstractAnimation5groupEv @ 1816 NONAME - _ZNK29QDeclarativeAbstractAnimation5loopsEv @ 1817 NONAME - _ZNK29QDeclarativeAbstractAnimation8isPausedEv @ 1818 NONAME - _ZNK29QDeclarativeAbstractAnimation9isRunningEv @ 1819 NONAME - _ZTI17QDeclarativeTimer @ 1820 NONAME - _ZTI29QDeclarativeAbstractAnimation @ 1821 NONAME - _ZTV17QDeclarativeTimer @ 1822 NONAME - _ZTV29QDeclarativeAbstractAnimation @ 1823 NONAME - _ZThn12_N29QDeclarativeAbstractAnimation10classBeginEv @ 1824 NONAME - _ZThn12_N29QDeclarativeAbstractAnimation17componentCompleteEv @ 1825 NONAME - _ZThn12_N29QDeclarativeAbstractAnimationD0Ev @ 1826 NONAME - _ZThn12_N29QDeclarativeAbstractAnimationD1Ev @ 1827 NONAME - _ZThn8_N17QDeclarativeTimer10classBeginEv @ 1828 NONAME - _ZThn8_N17QDeclarativeTimer17componentCompleteEv @ 1829 NONAME - _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1830 NONAME - _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1831 NONAME - _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1832 NONAME - _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1833 NONAME - _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1834 NONAME + _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1749 NONAME + _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1750 NONAME + _ZN17QDeclarativeTimer10classBeginEv @ 1751 NONAME + _ZN17QDeclarativeTimer10setRunningEb @ 1752 NONAME + _ZN17QDeclarativeTimer11qt_metacallEN11QMetaObject4CallEiPPv @ 1753 NONAME + _ZN17QDeclarativeTimer11qt_metacastEPKc @ 1754 NONAME + _ZN17QDeclarativeTimer11setIntervalEi @ 1755 NONAME + _ZN17QDeclarativeTimer12setRepeatingEb @ 1756 NONAME + _ZN17QDeclarativeTimer13repeatChangedEv @ 1757 NONAME + _ZN17QDeclarativeTimer14runningChangedEv @ 1758 NONAME + _ZN17QDeclarativeTimer15intervalChangedEv @ 1759 NONAME + _ZN17QDeclarativeTimer16staticMetaObjectE @ 1760 NONAME DATA 16 + _ZN17QDeclarativeTimer17componentCompleteEv @ 1761 NONAME + _ZN17QDeclarativeTimer19getStaticMetaObjectEv @ 1762 NONAME + _ZN17QDeclarativeTimer19setTriggeredOnStartEb @ 1763 NONAME + _ZN17QDeclarativeTimer23triggeredOnStartChangedEv @ 1764 NONAME + _ZN17QDeclarativeTimer4stopEv @ 1765 NONAME + _ZN17QDeclarativeTimer5startEv @ 1766 NONAME + _ZN17QDeclarativeTimer6tickedEv @ 1767 NONAME + _ZN17QDeclarativeTimer6updateEv @ 1768 NONAME + _ZN17QDeclarativeTimer7restartEv @ 1769 NONAME + _ZN17QDeclarativeTimer8finishedEv @ 1770 NONAME + _ZN17QDeclarativeTimer9triggeredEv @ 1771 NONAME + _ZN17QDeclarativeTimerC1EP7QObject @ 1772 NONAME + _ZN17QDeclarativeTimerC2EP7QObject @ 1773 NONAME + _ZN23QDeclarativeDebugClient13statusChangedENS_6StatusE @ 1774 NONAME + _ZN23QDeclarativeDebugClientD0Ev @ 1775 NONAME + _ZN23QDeclarativeDebugClientD1Ev @ 1776 NONAME + _ZN23QDeclarativeDebugClientD2Ev @ 1777 NONAME + _ZN23QDeclarativeEngineDebug13statusChangedENS_6StatusE @ 1778 NONAME + _ZN24QDeclarativeDebugService13statusChangedENS_6StatusE @ 1779 NONAME + _ZN24QDeclarativeDebugServiceD0Ev @ 1780 NONAME + _ZN24QDeclarativeDebugServiceD1Ev @ 1781 NONAME + _ZN24QDeclarativeDebugServiceD2Ev @ 1782 NONAME + _ZN26QDeclarativeBasePositioner10addChangedEv @ 1783 NONAME + _ZN26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1784 NONAME + _ZN26QDeclarativeBasePositioner10setSpacingEi @ 1785 NONAME + _ZN26QDeclarativeBasePositioner11moveChangedEv @ 1786 NONAME + _ZN26QDeclarativeBasePositioner11qt_metacallEN11QMetaObject4CallEiPPv @ 1787 NONAME + _ZN26QDeclarativeBasePositioner11qt_metacastEPKc @ 1788 NONAME + _ZN26QDeclarativeBasePositioner14prePositioningEv @ 1789 NONAME + _ZN26QDeclarativeBasePositioner14spacingChangedEv @ 1790 NONAME + _ZN26QDeclarativeBasePositioner16staticMetaObjectE @ 1791 NONAME DATA 16 + _ZN26QDeclarativeBasePositioner17componentCompleteEv @ 1792 NONAME + _ZN26QDeclarativeBasePositioner19getStaticMetaObjectEv @ 1793 NONAME + _ZN26QDeclarativeBasePositioner22finishApplyTransitionsEv @ 1794 NONAME + _ZN26QDeclarativeBasePositioner29graphicsWidgetGeometryChangedEv @ 1795 NONAME + _ZN26QDeclarativeBasePositioner6setAddEP22QDeclarativeTransition @ 1796 NONAME + _ZN26QDeclarativeBasePositioner7setMoveEP22QDeclarativeTransition @ 1797 NONAME + _ZN26QDeclarativeBasePositioner9positionXEiRKNS_14PositionedItemE @ 1798 NONAME + _ZN26QDeclarativeBasePositioner9positionYEiRKNS_14PositionedItemE @ 1799 NONAME + _ZN26QDeclarativeBasePositionerC2ENS_14PositionerTypeEP16QDeclarativeItem @ 1800 NONAME + _ZN26QDeclarativeBasePositionerC2ER33QDeclarativeBasePositionerPrivateNS_14PositionerTypeEP16QDeclarativeItem @ 1801 NONAME + _ZN26QDeclarativeBasePositionerD0Ev @ 1802 NONAME + _ZN26QDeclarativeBasePositionerD1Ev @ 1803 NONAME + _ZN26QDeclarativeBasePositionerD2Ev @ 1804 NONAME + _ZN27QDeclarativeDebugConnectionD0Ev @ 1805 NONAME + _ZN27QDeclarativeDebugConnectionD1Ev @ 1806 NONAME + _ZN27QDeclarativeDebugConnectionD2Ev @ 1807 NONAME + _ZN29QDeclarativeAbstractAnimation10classBeginEv @ 1808 NONAME + _ZN29QDeclarativeAbstractAnimation10setRunningEb @ 1809 NONAME + _ZN29QDeclarativeAbstractAnimation10transitionER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyENS_19TransitionDirectionE @ 1810 NONAME + _ZN29QDeclarativeAbstractAnimation11currentTimeEv @ 1811 NONAME + _ZN29QDeclarativeAbstractAnimation11qt_metacallEN11QMetaObject4CallEiPPv @ 1812 NONAME + _ZN29QDeclarativeAbstractAnimation11qt_metacastEPKc @ 1813 NONAME + _ZN29QDeclarativeAbstractAnimation13pausedChangedEb @ 1814 NONAME + _ZN29QDeclarativeAbstractAnimation14runningChangedEb @ 1815 NONAME + _ZN29QDeclarativeAbstractAnimation14setCurrentTimeEi @ 1816 NONAME + _ZN29QDeclarativeAbstractAnimation16loopCountChangedEi @ 1817 NONAME + _ZN29QDeclarativeAbstractAnimation16setDefaultTargetERK20QDeclarativeProperty @ 1818 NONAME + _ZN29QDeclarativeAbstractAnimation16staticMetaObjectE @ 1819 NONAME DATA 16 + _ZN29QDeclarativeAbstractAnimation16timelineCompleteEv @ 1820 NONAME + _ZN29QDeclarativeAbstractAnimation17componentCompleteEv @ 1821 NONAME + _ZN29QDeclarativeAbstractAnimation17setAlwaysRunToEndEb @ 1822 NONAME + _ZN29QDeclarativeAbstractAnimation18componentFinalizedEv @ 1823 NONAME + _ZN29QDeclarativeAbstractAnimation19getStaticMetaObjectEv @ 1824 NONAME + _ZN29QDeclarativeAbstractAnimation20notifyRunningChangedEb @ 1825 NONAME + _ZN29QDeclarativeAbstractAnimation21alwaysRunToEndChangedEb @ 1826 NONAME + _ZN29QDeclarativeAbstractAnimation21setDisableUserControlEv @ 1827 NONAME + _ZN29QDeclarativeAbstractAnimation4stopEv @ 1828 NONAME + _ZN29QDeclarativeAbstractAnimation5pauseEv @ 1829 NONAME + _ZN29QDeclarativeAbstractAnimation5startEv @ 1830 NONAME + _ZN29QDeclarativeAbstractAnimation6resumeEv @ 1831 NONAME + _ZN29QDeclarativeAbstractAnimation7restartEv @ 1832 NONAME + _ZN29QDeclarativeAbstractAnimation7startedEv @ 1833 NONAME + _ZN29QDeclarativeAbstractAnimation8completeEv @ 1834 NONAME + _ZN29QDeclarativeAbstractAnimation8setGroupEP26QDeclarativeAnimationGroup @ 1835 NONAME + _ZN29QDeclarativeAbstractAnimation8setLoopsEi @ 1836 NONAME + _ZN29QDeclarativeAbstractAnimation9completedEv @ 1837 NONAME + _ZN29QDeclarativeAbstractAnimation9setPausedEb @ 1838 NONAME + _ZN29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1839 NONAME + _ZN29QDeclarativeAbstractAnimationC2EP7QObject @ 1840 NONAME + _ZN29QDeclarativeAbstractAnimationC2ER36QDeclarativeAbstractAnimationPrivateP7QObject @ 1841 NONAME + _ZN29QDeclarativeAbstractAnimationD0Ev @ 1842 NONAME + _ZN29QDeclarativeAbstractAnimationD1Ev @ 1843 NONAME + _ZN29QDeclarativeAbstractAnimationD2Ev @ 1844 NONAME + _ZNK16QDeclarativeType20attachedPropertiesIdEv @ 1845 NONAME + _ZNK17QDeclarativeTimer10metaObjectEv @ 1846 NONAME + _ZNK17QDeclarativeTimer11isRepeatingEv @ 1847 NONAME + _ZNK17QDeclarativeTimer16triggeredOnStartEv @ 1848 NONAME + _ZNK17QDeclarativeTimer8intervalEv @ 1849 NONAME + _ZNK17QDeclarativeTimer9isRunningEv @ 1850 NONAME + _ZNK23QDeclarativeDebugClient6statusEv @ 1851 NONAME + _ZNK23QDeclarativeEngineDebug6statusEv @ 1852 NONAME + _ZNK24QDeclarativeDebugService6statusEv @ 1853 NONAME + _ZNK26QDeclarativeBasePositioner10metaObjectEv @ 1854 NONAME + _ZNK26QDeclarativeBasePositioner3addEv @ 1855 NONAME + _ZNK26QDeclarativeBasePositioner4moveEv @ 1856 NONAME + _ZNK26QDeclarativeBasePositioner7spacingEv @ 1857 NONAME + _ZNK29QDeclarativeAbstractAnimation10metaObjectEv @ 1858 NONAME + _ZNK29QDeclarativeAbstractAnimation14alwaysRunToEndEv @ 1859 NONAME + _ZNK29QDeclarativeAbstractAnimation5groupEv @ 1860 NONAME + _ZNK29QDeclarativeAbstractAnimation5loopsEv @ 1861 NONAME + _ZNK29QDeclarativeAbstractAnimation8isPausedEv @ 1862 NONAME + _ZNK29QDeclarativeAbstractAnimation9isRunningEv @ 1863 NONAME + _ZTI17QDeclarativeTimer @ 1864 NONAME + _ZTI26QDeclarativeBasePositioner @ 1865 NONAME + _ZTI29QDeclarativeAbstractAnimation @ 1866 NONAME + _ZTV17QDeclarativeTimer @ 1867 NONAME + _ZTV26QDeclarativeBasePositioner @ 1868 NONAME + _ZTV29QDeclarativeAbstractAnimation @ 1869 NONAME + _ZThn12_N29QDeclarativeAbstractAnimation10classBeginEv @ 1870 NONAME + _ZThn12_N29QDeclarativeAbstractAnimation17componentCompleteEv @ 1871 NONAME + _ZThn12_N29QDeclarativeAbstractAnimationD0Ev @ 1872 NONAME + _ZThn12_N29QDeclarativeAbstractAnimationD1Ev @ 1873 NONAME + _ZThn16_N26QDeclarativeBasePositioner17componentCompleteEv @ 1874 NONAME + _ZThn16_N26QDeclarativeBasePositionerD0Ev @ 1875 NONAME + _ZThn16_N26QDeclarativeBasePositionerD1Ev @ 1876 NONAME + _ZThn8_N17QDeclarativeTimer10classBeginEv @ 1877 NONAME + _ZThn8_N17QDeclarativeTimer17componentCompleteEv @ 1878 NONAME + _ZThn8_N26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1879 NONAME + _ZThn8_N26QDeclarativeBasePositionerD0Ev @ 1880 NONAME + _ZThn8_N26QDeclarativeBasePositionerD1Ev @ 1881 NONAME + _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1882 NONAME + _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1883 NONAME + _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1884 NONAME -- cgit v0.12 From 59e26112158559e34859fb731599576d194245b0 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Wed, 29 Sep 2010 19:11:53 +1000 Subject: Fallback to A8 text rendering on Mac when LCD smoothing is disabled Task-number: QTBUG-14050 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index acc68d3..a81ed8e 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -98,6 +98,10 @@ QT_BEGIN_NAMESPACE extern Q_GUI_EXPORT bool qt_cleartype_enabled; #endif +#ifdef Q_WS_MAC +extern bool qt_applefontsmoothing_enabled; +#endif + extern QImage qt_imageForBrush(int brushStyle, bool invert); ////////////////////////////////// Private Methods ////////////////////////////////////////// @@ -1868,6 +1872,9 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev) #if defined(Q_WS_WIN) if (qt_cleartype_enabled) #endif +#if defined(Q_WS_MAC) + if (qt_applefontsmoothing_enabled) +#endif d->glyphCacheType = QFontEngineGlyphCache::Raster_RGBMask; #endif -- cgit v0.12 From 91501cc9b542de644cd70098a6bc5ff738cdeb49 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 30 Sep 2010 10:32:02 +1000 Subject: Doc clarification. Task-number: QTBUG-14053 --- src/declarative/util/qdeclarativeanimation.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index ba6f1e7..f2e6217 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -305,6 +305,8 @@ void QDeclarativeAbstractAnimation::componentFinalized() animation will finish playing normally but not restart. By default, the alwaysRunToEnd property is not set. + + \note alwaysRunToEnd has no effect on animations in a Transition. */ bool QDeclarativeAbstractAnimation::alwaysRunToEnd() const { -- cgit v0.12 From 39d908a2e1bdbb25e23e75bb5a5c4fdeec0692c0 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 30 Sep 2010 15:37:35 +1000 Subject: Revert "QDeclarativeDebugService: Add bc autotest" to get changes through staging. This reverts commit 31dcf2b4028b1f76301fc69fccff0a9474a0a135. --- .../private_headers/qdeclarativedebugservice_p.h | 92 ---------------------- .../qdeclarativedebugservice.pro | 3 +- .../tst_qdeclarativedebugservice.cpp | 2 +- 3 files changed, 2 insertions(+), 95 deletions(-) delete mode 100644 tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h diff --git a/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h b/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h deleted file mode 100644 index 0cadbe5..0000000 --- a/tests/auto/declarative/qdeclarativedebugservice/private_headers/qdeclarativedebugservice_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtDeclarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDECLARATIVEDEBUGSERVICE_H -#define QDECLARATIVEDEBUGSERVICE_H - -#include - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QDeclarativeDebugServicePrivate; -class Q_DECLARATIVE_EXPORT QDeclarativeDebugService : public QObject -{ - Q_OBJECT - Q_DECLARE_PRIVATE(QDeclarativeDebugService) - Q_DISABLE_COPY(QDeclarativeDebugService) - -public: - explicit QDeclarativeDebugService(const QString &, QObject *parent = 0); - ~QDeclarativeDebugService(); - - QString name() const; - - enum Status { NotConnected, Unavailable, Enabled }; - Status status() const; - - void sendMessage(const QByteArray &); - - static int idForObject(QObject *); - static QObject *objectForId(int); - - static QString objectToString(QObject *obj); - - static bool isDebuggingEnabled(); - static bool hasDebuggingClient(); - -protected: - virtual void statusChanged(Status); - virtual void messageReceived(const QByteArray &); - -private: - friend class QDeclarativeDebugServer; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QDECLARATIVEDEBUGSERVICE_H - diff --git a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro index 83bcadb..a62e148 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro +++ b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro @@ -2,8 +2,7 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += network declarative macx:CONFIG -= app_bundle -HEADERS += ../shared/debugutil_p.h \ - private_headers/qdeclarativedebugservice_p.h +HEADERS += ../shared/debugutil_p.h SOURCES += tst_qdeclarativedebugservice.cpp \ ../shared/debugutil.cpp diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp index 945823a..bce4713 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp +++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp @@ -50,8 +50,8 @@ #include #include #include +#include -#include "private_headers/qdeclarativedebugservice_p.h" #include "../../../shared/util.h" #include "../shared/debugutil_p.h" -- cgit v0.12 From 7d5afd371d634e35192ab27f65c6dc895f7bbb5c Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Thu, 30 Sep 2010 11:00:33 +0200 Subject: Update changes --- dist/changes-4.7.1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dist/changes-4.7.1 b/dist/changes-4.7.1 index 9a3e543..2c25699 100644 --- a/dist/changes-4.7.1 +++ b/dist/changes-4.7.1 @@ -90,6 +90,8 @@ QtGui - QTreeView * [QTBUG-13567] Do not scroll to top if last item is removed + - QGtkStyle + * [QTBUG-13125] Fixed a regression with custom itemview background color. QtDBus ------ -- cgit v0.12 From 9e9a7bc29319d52c3e563bc2c5282cb7e6890eba Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 29 Sep 2010 14:02:10 +0200 Subject: Fixes cursor shape when widget becomes native on X11. When a native window handle is created for a widget that has override cursor set, we should reset the cursor on the parent and set the cursor on the new window handle. Task-number: QTBUG-6185 Reviewed-by: Olivier Goffart --- src/gui/kernel/qwidget_x11.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp index e01489f..8d80e10 100644 --- a/src/gui/kernel/qwidget_x11.cpp +++ b/src/gui/kernel/qwidget_x11.cpp @@ -889,8 +889,10 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO q->setWindowOpacity(maybeTopData()->opacity/255.); } - } else if (q->testAttribute(Qt::WA_SetCursor) && q->internalWinId()) { + } else if (q->internalWinId()) { qt_x11_enforce_cursor(q); + if (QWidget *p = q->parentWidget()) // reset the cursor on the native parent + qt_x11_enforce_cursor(p); } if (extra && !extra->mask.isEmpty() && q->internalWinId()) -- cgit v0.12 From fc50d7ecaacfbfef1dbefd6ffdc083cb66c5633c Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Thu, 30 Sep 2010 13:45:00 +0200 Subject: QAxBase::dynamicCall() returns invalid QVariant Starting from 4.7.0, QVariant is recognized as a standard type by the meta type system. ActiveQt needs to consider this while converting COM VARIANT types to a QVariant. Task-number: QTBUG-13845 Reviewed-by: Volker Hilsheimer Reviewed-by: Olivier Goffart --- src/activeqt/shared/qaxtypes.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/activeqt/shared/qaxtypes.cpp b/src/activeqt/shared/qaxtypes.cpp index 957733e..ff21a9f 100644 --- a/src/activeqt/shared/qaxtypes.cpp +++ b/src/activeqt/shared/qaxtypes.cpp @@ -1376,8 +1376,10 @@ QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint } QVariant::Type proptype = (QVariant::Type)type; - if (proptype == QVariant::Invalid && !typeName.isEmpty()) - proptype = QVariant::nameToType(typeName); + if (proptype == QVariant::Invalid && !typeName.isEmpty()) { + if (typeName != "QVariant") + proptype = QVariant::nameToType(typeName); + } if (proptype != QVariant::LastType && proptype != QVariant::Invalid && var.type() != proptype) { if (var.canConvert(proptype)) { QVariant oldvar = var; -- cgit v0.12 From eb407209bb9f2c06684fd1299169cd3b8ab4b58d Mon Sep 17 00:00:00 2001 From: Jedrzej Nowacki Date: Thu, 30 Sep 2010 13:17:39 +0200 Subject: Fix QScriptEngine::abortEvaluation. This patch reduce time in which QScriptEngine would abort an script executing multiple long-running native functions. Task-number: QTBUG-9433 Reviewed-by: Olivier Goffart --- src/script/api/qscriptengine.cpp | 7 ++- tests/auto/qscriptengine/tst_qscriptengine.cpp | 60 ++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp index 07aced4..128e9c3 100644 --- a/src/script/api/qscriptengine.cpp +++ b/src/script/api/qscriptengine.cpp @@ -46,6 +46,7 @@ #include "Error.h" #include "Interpreter.h" +#include "ExceptionHelpers.h" #include "PrototypeFunction.h" #include "InitializeThreading.h" #include "ObjectPrototype.h" @@ -4116,9 +4117,11 @@ bool QScriptEngine::isEvaluating() const void QScriptEngine::abortEvaluation(const QScriptValue &result) { Q_D(QScriptEngine); - - d->timeoutChecker()->setShouldAbort(true); + if (!isEvaluating()) + return; d->abortResult = result; + d->timeoutChecker()->setShouldAbort(true); + JSC::throwError(d->currentFrame, JSC::createInterruptedExecutionException(&d->currentFrame->globalData()).toObject(d->currentFrame)); } #ifndef QT_NO_QOBJECT diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp index f96aea6..26eb1af 100644 --- a/tests/auto/qscriptengine/tst_qscriptengine.cpp +++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp @@ -134,6 +134,7 @@ private slots: void numberParsing(); void automaticSemicolonInsertion(); void abortEvaluation(); + void abortEvaluation_QTBUG9433(); void isEvaluating(); void printFunctionWithCustomHandler(); void printThrowsException(); @@ -3007,7 +3008,8 @@ public: enum AbortionResult { None = 0, String = 1, - Error = 2 + Error = 2, + Number = 3 }; EventReceiver3(QScriptEngine *eng) { @@ -3027,6 +3029,8 @@ public: case Error: engine->abortEvaluation(engine->currentContext()->throwError("AbortedWithError")); break; + case Number: + engine->abortEvaluation(QScriptValue(1234)); } } return QObject::event(e); @@ -3059,7 +3063,7 @@ void tst_QScriptEngine::abortEvaluation() EventReceiver3 receiver(&eng); eng.setProcessEventsInterval(100); - for (int x = 0; x < 3; ++x) { + for (int x = 0; x < 4; ++x) { QCoreApplication::postEvent(&receiver, new QEvent(QEvent::Type(QEvent::User+1))); receiver.resultType = EventReceiver3::AbortionResult(x); QScriptValue ret = eng.evaluate(QString::fromLatin1("while (1) { }")); @@ -3068,6 +3072,11 @@ void tst_QScriptEngine::abortEvaluation() QVERIFY(!eng.hasUncaughtException()); QVERIFY(!ret.isValid()); break; + case EventReceiver3::Number: + QVERIFY(!eng.hasUncaughtException()); + QVERIFY(ret.isNumber()); + QCOMPARE(ret.toInt32(), 1234); + break; case EventReceiver3::String: QVERIFY(!eng.hasUncaughtException()); QVERIFY(ret.isString()); @@ -3082,7 +3091,7 @@ void tst_QScriptEngine::abortEvaluation() } // scripts cannot intercept the abortion with try/catch - for (int y = 0; y < 3; ++y) { + for (int y = 0; y < 4; ++y) { QCoreApplication::postEvent(&receiver, new QEvent(QEvent::Type(QEvent::User+1))); receiver.resultType = EventReceiver3::AbortionResult(y); QScriptValue ret = eng.evaluate(QString::fromLatin1( @@ -3098,6 +3107,11 @@ void tst_QScriptEngine::abortEvaluation() QVERIFY(!eng.hasUncaughtException()); QVERIFY(!ret.isValid()); break; + case EventReceiver3::Number: + QVERIFY(!eng.hasUncaughtException()); + QVERIFY(ret.isNumber()); + QCOMPARE(ret.toInt32(), 1234); + break; case EventReceiver3::String: QVERIFY(!eng.hasUncaughtException()); QVERIFY(ret.isString()); @@ -3118,6 +3132,46 @@ void tst_QScriptEngine::abortEvaluation() } } +class ThreadedEngine : public QThread { + Q_OBJECT; + +private: + QScriptEngine* m_engine; +protected: + void run() { + m_engine = new QScriptEngine(); + m_engine->setGlobalObject(m_engine->newQObject(this)); + m_engine->evaluate("while(1) { sleep(); }"); + delete m_engine; + } + +public slots: + void sleep() + { + QTest::qSleep(25); + m_engine->abortEvaluation(); + } +}; + +void tst_QScriptEngine::abortEvaluation_QTBUG9433() +{ + ThreadedEngine engine; + engine.start(); + QVERIFY(engine.isRunning()); + QTest::qSleep(50); + for (uint i = 0; i < 50; ++i) { // up to ~2500 ms + if (engine.isFinished()) + return; + QTest::qSleep(50); + } + if (!engine.isFinished()) { + engine.terminate(); + engine.wait(7000); + QFAIL("abortEvaluation doesn't work"); + } + +} + static QScriptValue myFunctionReturningIsEvaluating(QScriptContext *, QScriptEngine *eng) { return QScriptValue(eng, eng->isEvaluating()); -- cgit v0.12 From a1f050fe4217d3a642ab7f4df8e50c21aa51689c Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 30 Sep 2010 15:26:05 +0200 Subject: QDeclarativeDebugClient: Make sure status is consistent When statusChanged() is called during handsake state() was not the same as the argument passed. Fix this by setting gotHello = true _before_ notifying the clients. Reviewed-by: Christiaan Janssen Task-number: QTBUG-14087 --- src/declarative/debugger/qdeclarativedebugclient.cpp | 3 +-- .../qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp | 5 +++++ tests/auto/declarative/shared/debugutil.cpp | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index ce3faf6..5baaf70 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -136,7 +136,7 @@ void QDeclarativeDebugConnectionPrivate::readyRead() return; } - qDebug() << "Available server side plugins: " << serverPlugins; + gotHello = true; QHash::Iterator iter = plugins.begin(); for (; iter != plugins.end(); ++iter) { @@ -145,7 +145,6 @@ void QDeclarativeDebugConnectionPrivate::readyRead() newStatus = QDeclarativeDebugClient::Enabled; iter.value()->statusChanged(newStatus); } - gotHello = true; } while (protocol->packetsAvailable()) { diff --git a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp index 72af3eb..a5f9846 100644 --- a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp +++ b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp @@ -77,6 +77,10 @@ void tst_QDeclarativeDebugClient::initTestCase() new QDeclarativeEngine(this); m_conn = new QDeclarativeDebugConnection(this); + + QDeclarativeDebugTestClient client("tst_QDeclarativeDebugClient::handshake()", m_conn); + QDeclarativeDebugTestService service("tst_QDeclarativeDebugClient::handshake()"); + m_conn->connectToHost("127.0.0.1", 3770); QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Connection established"); @@ -84,6 +88,7 @@ void tst_QDeclarativeDebugClient::initTestCase() Q_ASSERT(ok); QTRY_VERIFY(QDeclarativeDebugService::hasDebuggingClient()); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Enabled); } void tst_QDeclarativeDebugClient::name() diff --git a/tests/auto/declarative/shared/debugutil.cpp b/tests/auto/declarative/shared/debugutil.cpp index 5f68e44..cbd055b 100644 --- a/tests/auto/declarative/shared/debugutil.cpp +++ b/tests/auto/declarative/shared/debugutil.cpp @@ -91,8 +91,9 @@ QByteArray QDeclarativeDebugTestClient::waitForResponse() return lastMsg; } -void QDeclarativeDebugTestClient::statusChanged(Status status) +void QDeclarativeDebugTestClient::statusChanged(Status stat) { + QCOMPARE(stat, status()); emit statusHasChanged(); } -- cgit v0.12 From 72fd8399aa36395e41f497fff79842496d6f9b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Nilsen?= Date: Thu, 30 Sep 2010 16:46:26 +0200 Subject: Some 4.7.1 changes. --- dist/changes-4.7.1 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dist/changes-4.7.1 b/dist/changes-4.7.1 index 2c25699..2d79ac1 100644 --- a/dist/changes-4.7.1 +++ b/dist/changes-4.7.1 @@ -62,6 +62,16 @@ QtGui - QGraphicsWidget * [QTBUG-13188] Make sure a font that has propagated from a parent can be set on a QPainter. + * [QT-3808] Issues when applying effects in combination with ItemHasNoContents flag. + + - QGraphicsItem + * [QTBUG-3633, QT-3828] Wrong children bounding rect when applying effects. + + - QGraphicsEffect + * [QT-3633] Wrong bounding rect. + + - QGraphicsScene + * [QT-3674] Spurious assert triggered from render(). - QPainter * [QTBUG-13429] Fixed scale point drawing with square cap in the raster -- cgit v0.12 From 6dc208237977886056622b307941900658288e13 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 28 Oct 2009 10:41:17 +0100 Subject: Add the new allocator to corelib New export in corelib that is called from the qtmain wrapper to setup the thread heap. This allows 7k of code to be shared, and makes it easier to disable or upgrade the allocator in future releases Task-number: QTBUG-4895 Enable new allocator by default Rename of headers as _p.h to avoid syncqt adding them to applications move inline functions from .inl -> .h, document & rename macros remove #if 0 from the dla header, implement getpagesize properly squashed after sanitisation Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/arch.pri | 7 +- src/corelib/arch/symbian/dla_p.h | 1060 +++++++++++ src/corelib/arch/symbian/newallocator.cpp | 2898 +++++++++++++++++++++++++++++ src/corelib/arch/symbian/newallocator_p.h | 336 ++++ src/corelib/global/qglobal.h | 3 + src/s60main/newallocator_hook.cpp | 56 + src/s60main/s60main.pro | 3 +- 7 files changed, 4361 insertions(+), 2 deletions(-) create mode 100644 src/corelib/arch/symbian/dla_p.h create mode 100644 src/corelib/arch/symbian/newallocator.cpp create mode 100644 src/corelib/arch/symbian/newallocator_p.h create mode 100644 src/s60main/newallocator_hook.cpp diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index 3ef1c9e..0a1b9a6 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -2,4 +2,9 @@ # Symbian architecture # SOURCES += $$QT_ARCH_CPP/qatomic_symbian.cpp \ - $$QT_ARCH_CPP/../armv6/qatomic_generic_armv6.cpp + $$QT_ARCH_CPP/newallocator.cpp \ + $$QT_ARCH_CPP/../generic/qatomic_generic_armv6.cpp + +HEADERS += $$QT_ARCH_CPP/dla_p.h \ + $$QT_ARCH_CPP/newallocator_p.h \ + $$QT_ARCH_CPP/newallocator.inl diff --git a/src/corelib/arch/symbian/dla_p.h b/src/corelib/arch/symbian/dla_p.h new file mode 100644 index 0000000..5bffcf5 --- /dev/null +++ b/src/corelib/arch/symbian/dla_p.h @@ -0,0 +1,1060 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Symbian application wrapper of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef __DLA__ +#define __DLA__ + +#define DEFAULT_TRIM_THRESHOLD ((size_t)4U * (size_t)1024U) + +#define __SYMBIAN__ +#define MSPACES 0 +#define HAVE_MORECORE 1 +#define MORECORE_CONTIGUOUS 1 +#define HAVE_MMAP 0 +#define HAVE_MREMAP 0 +#define DEFAULT_GRANULARITY (4096U) +#define FOOTERS 0 +#define USE_LOCKS 0 +#define INSECURE 1 +#define NO_MALLINFO 0 +#define HAVE_GETPAGESIZE + +#define LACKS_SYS_TYPES_H +#ifndef LACKS_SYS_TYPES_H +#include /* For size_t */ +#else +#ifndef _SIZE_T_DECLARED +typedef unsigned int size_t; +#define _SIZE_T_DECLARED +#endif +#endif /* LACKS_SYS_TYPES_H */ + +/* The maximum possible size_t value has all bits set */ +#define MAX_SIZE_T (~(size_t)0) + +#ifndef ONLY_MSPACES + #define ONLY_MSPACES 0 +#endif /* ONLY_MSPACES */ + +#ifndef MSPACES + #if ONLY_MSPACES + #define MSPACES 1 + #else /* ONLY_MSPACES */ + #define MSPACES 0 + #endif /* ONLY_MSPACES */ +#endif /* MSPACES */ + +#ifndef MALLOC_ALIGNMENT + #define MALLOC_ALIGNMENT ((size_t)8U) +#endif /* MALLOC_ALIGNMENT */ + +#ifndef FOOTERS + #define FOOTERS 0 +#endif /* FOOTERS */ + +#ifndef ABORT +// #define ABORT abort() + #define ABORT User::Invariant()// redefined so euser isn't dependant on oe +#endif /* ABORT */ + +#ifndef ABORT_ON_ASSERT_FAILURE + #define ABORT_ON_ASSERT_FAILURE 1 +#endif /* ABORT_ON_ASSERT_FAILURE */ + +#ifndef PROCEED_ON_ERROR + #define PROCEED_ON_ERROR 0 +#endif /* PROCEED_ON_ERROR */ + +#ifndef USE_LOCKS + #define USE_LOCKS 0 +#endif /* USE_LOCKS */ + +#ifndef INSECURE + #define INSECURE 0 +#endif /* INSECURE */ + +#ifndef HAVE_MMAP + #define HAVE_MMAP 1 +#endif /* HAVE_MMAP */ + +#ifndef MMAP_CLEARS + #define MMAP_CLEARS 1 +#endif /* MMAP_CLEARS */ + +#ifndef HAVE_MREMAP + #ifdef linux + #define HAVE_MREMAP 1 + #else /* linux */ + #define HAVE_MREMAP 0 + #endif /* linux */ +#endif /* HAVE_MREMAP */ + +#ifndef MALLOC_FAILURE_ACTION + //#define MALLOC_FAILURE_ACTION errno = ENOMEM; + #define MALLOC_FAILURE_ACTION ; +#endif /* MALLOC_FAILURE_ACTION */ + +#ifndef HAVE_MORECORE + #if ONLY_MSPACES + #define HAVE_MORECORE 1 /*AMOD: has changed */ + #else /* ONLY_MSPACES */ + #define HAVE_MORECORE 1 + #endif /* ONLY_MSPACES */ +#endif /* HAVE_MORECORE */ + +#if !HAVE_MORECORE + #define MORECORE_CONTIGUOUS 0 +#else /* !HAVE_MORECORE */ + #ifndef MORECORE + #define MORECORE DLAdjust + #endif /* MORECORE */ + #ifndef MORECORE_CONTIGUOUS + #define MORECORE_CONTIGUOUS 0 + #endif /* MORECORE_CONTIGUOUS */ +#endif /* !HAVE_MORECORE */ + +#ifndef DEFAULT_GRANULARITY + #if MORECORE_CONTIGUOUS + #define DEFAULT_GRANULARITY 4096 /* 0 means to compute in init_mparams */ + #else /* MORECORE_CONTIGUOUS */ + #define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U) + #endif /* MORECORE_CONTIGUOUS */ +#endif /* DEFAULT_GRANULARITY */ + +#ifndef DEFAULT_TRIM_THRESHOLD + #ifndef MORECORE_CANNOT_TRIM + #define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U) + #else /* MORECORE_CANNOT_TRIM */ + #define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T + #endif /* MORECORE_CANNOT_TRIM */ +#endif /* DEFAULT_TRIM_THRESHOLD */ + +#ifndef DEFAULT_MMAP_THRESHOLD + #if HAVE_MMAP + #define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U) + #else /* HAVE_MMAP */ + #define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T + #endif /* HAVE_MMAP */ +#endif /* DEFAULT_MMAP_THRESHOLD */ + +#ifndef USE_BUILTIN_FFS + #define USE_BUILTIN_FFS 0 +#endif /* USE_BUILTIN_FFS */ + +#ifndef USE_DEV_RANDOM + #define USE_DEV_RANDOM 0 +#endif /* USE_DEV_RANDOM */ + +#ifndef NO_MALLINFO + #define NO_MALLINFO 0 +#endif /* NO_MALLINFO */ +#ifndef MALLINFO_FIELD_TYPE + #define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ + +/* + mallopt tuning options. SVID/XPG defines four standard parameter + numbers for mallopt, normally defined in malloc.h. None of these + are used in this malloc, so setting them has no effect. But this + malloc does support the following options. +*/ + +#define M_TRIM_THRESHOLD (-1) +#define M_GRANULARITY (-2) +#define M_MMAP_THRESHOLD (-3) + +#if !NO_MALLINFO +/* + This version of malloc supports the standard SVID/XPG mallinfo + routine that returns a struct containing usage properties and + statistics. It should work on any system that has a + /usr/include/malloc.h defining struct mallinfo. The main + declaration needed is the mallinfo struct that is returned (by-copy) + by mallinfo(). The malloinfo struct contains a bunch of fields that + are not even meaningful in this version of malloc. These fields are + are instead filled by mallinfo() with other numbers that might be of + interest. + + HAVE_USR_INCLUDE_MALLOC_H should be set if you have a + /usr/include/malloc.h file that includes a declaration of struct + mallinfo. If so, it is included; else a compliant version is + declared below. These must be precisely the same for mallinfo() to + work. The original SVID version of this struct, defined on most + systems with mallinfo, declares all fields as ints. But some others + define as unsigned long. If your system defines the fields using a + type of different width than listed here, you MUST #include your + system version and #define HAVE_USR_INCLUDE_MALLOC_H. +*/ + +/* #define HAVE_USR_INCLUDE_MALLOC_H */ + +#ifdef HAVE_USR_INCLUDE_MALLOC_H +#include "/usr/include/malloc.h" +#else /* HAVE_USR_INCLUDE_MALLOC_H */ + +struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ + MALLINFO_FIELD_TYPE cellCount;/* Number of chunks allocated*/ +}; + +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +#endif /* NO_MALLINFO */ + +#if MSPACES + typedef void* mspace; +#endif /* MSPACES */ + +#ifndef __SYMBIAN__ + +#include /* for printing in malloc_stats */ + +#ifndef LACKS_ERRNO_H + #include /* for MALLOC_FAILURE_ACTION */ +#endif /* LACKS_ERRNO_H */ + +#if FOOTERS + #include /* for magic initialization */ +#endif /* FOOTERS */ + +#ifndef LACKS_STDLIB_H + #include /* for abort() */ +#endif /* LACKS_STDLIB_H */ + +#ifdef DEBUG + #if ABORT_ON_ASSERT_FAILURE + #define assert(x) if(!(x)) ABORT + #else /* ABORT_ON_ASSERT_FAILURE */ + #include + #endif /* ABORT_ON_ASSERT_FAILURE */ +#else /* DEBUG */ + #define assert(x) +#endif /* DEBUG */ + +#ifndef LACKS_STRING_H + #include /* for memset etc */ +#endif /* LACKS_STRING_H */ + +#if USE_BUILTIN_FFS + #ifndef LACKS_STRINGS_H + #include /* for ffs */ + #endif /* LACKS_STRINGS_H */ +#endif /* USE_BUILTIN_FFS */ + +#if HAVE_MMAP + #ifndef LACKS_SYS_MMAN_H + #include /* for mmap */ + #endif /* LACKS_SYS_MMAN_H */ + #ifndef LACKS_FCNTL_H + #include + #endif /* LACKS_FCNTL_H */ +#endif /* HAVE_MMAP */ + +#if HAVE_MORECORE + #ifndef LACKS_UNISTD_H + #include /* for sbrk */ + extern void* sbrk(size_t); + #else /* LACKS_UNISTD_H */ + #if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) + extern void* sbrk(ptrdiff_t); + /*Amod sbrk is not defined in WIN32 need to check in symbian*/ + #endif /* FreeBSD etc */ + #endif /* LACKS_UNISTD_H */ +#endif /* HAVE_MORECORE */ + +#endif + +#define assert(x) ASSERT(x) + +#ifndef WIN32 + #ifndef malloc_getpagesize + #ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ + #ifndef _SC_PAGE_SIZE + #define _SC_PAGE_SIZE _SC_PAGESIZE + #endif + #endif + #ifdef _SC_PAGE_SIZE + #define malloc_getpagesize sysconf(_SC_PAGE_SIZE) + #else + #if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) + extern size_t getpagesize(); + #define malloc_getpagesize getpagesize() + #else + #ifdef WIN32 /* use supplied emulation of getpagesize */ + #define malloc_getpagesize getpagesize() + #else + #ifndef LACKS_SYS_PARAM_H + #include + #endif + #ifdef EXEC_PAGESIZE + #define malloc_getpagesize EXEC_PAGESIZE + #else + #ifdef NBPG + #ifndef CLSIZE + #define malloc_getpagesize NBPG + #else + #define malloc_getpagesize (NBPG * CLSIZE) + #endif + #else + #ifdef NBPC + #define malloc_getpagesize NBPC + #else + #ifdef PAGESIZE + #define malloc_getpagesize PAGESIZE + #else /* just guess */ + #define malloc_getpagesize ((size_t)4096U) + #endif + #endif + #endif + #endif + #endif + #endif + #endif + #endif +#endif + +/* ------------------- size_t and alignment properties -------------------- */ + +/* The byte and bit size of a size_t */ +#define SIZE_T_SIZE (sizeof(size_t)) +#define SIZE_T_BITSIZE (sizeof(size_t) << 3) + +/* Some constants coerced to size_t */ +/* Annoying but necessary to avoid errors on some plaftorms */ +#define SIZE_T_ZERO ((size_t)0) +#define SIZE_T_ONE ((size_t)1) +#define SIZE_T_TWO ((size_t)2) +#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1) +#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2) +#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES) +#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U) + +/* The bit mask value corresponding to MALLOC_ALIGNMENT */ +#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) + +/* True if address a has acceptable alignment */ +//#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) +#define is_aligned(A) (((unsigned int)((A)) & (CHUNK_ALIGN_MASK)) == 0) + +/* the number of bytes to offset an address to align it */ +#define align_offset(A)\ + ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\ + ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK)) + +/* -------------------------- MMAP preliminaries ------------------------- */ + +/* + If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and + checks to fail so compiler optimizer can delete code rather than + using so many "#if"s. +*/ + + +/* MORECORE and MMAP must return MFAIL on failure */ +#define MFAIL ((void*)(MAX_SIZE_T)) +#define CMFAIL ((TUint8*)(MFAIL)) /* defined for convenience */ + +#if !HAVE_MMAP + #define IS_MMAPPED_BIT (SIZE_T_ZERO) + #define USE_MMAP_BIT (SIZE_T_ZERO) + #define CALL_MMAP(s) MFAIL + #define CALL_MUNMAP(a, s) (-1) + #define DIRECT_MMAP(s) MFAIL +#else /* !HAVE_MMAP */ + #define IS_MMAPPED_BIT (SIZE_T_ONE) + #define USE_MMAP_BIT (SIZE_T_ONE) + #ifndef WIN32 + #define CALL_MUNMAP(a, s) DLUMMAP((a),(s)) /*munmap((a), (s))*/ + #define MMAP_PROT (PROT_READ|PROT_WRITE) + #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) + #define MAP_ANONYMOUS MAP_ANON + #endif /* MAP_ANON */ + #ifdef MAP_ANONYMOUS + #define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) + #define CALL_MMAP(s) mmap(0, (s), MMAP_PROT, (int)MMAP_FLAGS, -1, 0) + #else /* MAP_ANONYMOUS */ + /* + Nearly all versions of mmap support MAP_ANONYMOUS, so the following + is unlikely to be needed, but is supplied just in case. + */ + #define MMAP_FLAGS (MAP_PRIVATE) + //static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */ + #define CALL_MMAP(s) DLMMAP(s) + /*#define CALL_MMAP(s) ((dev_zero_fd < 0) ? \ + (dev_zero_fd = open("/dev/zero", O_RDWR), \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \ + mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) + */ + #define CALL_REMAP(a, s, d) DLREMAP((a),(s),(d)) + #endif /* MAP_ANONYMOUS */ + #define DIRECT_MMAP(s) CALL_MMAP(s) + #else /* WIN32 */ + #define CALL_MMAP(s) win32mmap(s) + #define CALL_MUNMAP(a, s) win32munmap((a), (s)) + #define DIRECT_MMAP(s) win32direct_mmap(s) + #endif /* WIN32 */ +#endif /* HAVE_MMAP */ + +#if HAVE_MMAP && HAVE_MREMAP + #define CALL_MREMAP(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv)) +#else /* HAVE_MMAP && HAVE_MREMAP */ + #define CALL_MREMAP(addr, osz, nsz, mv) MFAIL +#endif /* HAVE_MMAP && HAVE_MREMAP */ + +#if HAVE_MORECORE + #define CALL_MORECORE(S) SetBrk(S) +#else /* HAVE_MORECORE */ + #define CALL_MORECORE(S) MFAIL +#endif /* HAVE_MORECORE */ + +/* mstate bit set if continguous morecore disabled or failed */ +#define USE_NONCONTIGUOUS_BIT (4U) + +/* segment bit set in create_mspace_with_base */ +#define EXTERN_BIT (8U) + + +#if USE_LOCKS +/* + When locks are defined, there are up to two global locks: + * If HAVE_MORECORE, morecore_mutex protects sequences of calls to + MORECORE. In many cases sys_alloc requires two calls, that should + not be interleaved with calls by other threads. This does not + protect against direct calls to MORECORE by other threads not + using this lock, so there is still code to cope the best we can on + interference. + * magic_init_mutex ensures that mparams.magic and other + unique mparams values are initialized only once. +*/ + #ifndef WIN32 + /* By default use posix locks */ + #include + #define MLOCK_T pthread_mutex_t + #define INITIAL_LOCK(l) pthread_mutex_init(l, NULL) + #define ACQUIRE_LOCK(l) pthread_mutex_lock(l) + #define RELEASE_LOCK(l) pthread_mutex_unlock(l) + + #if HAVE_MORECORE + //static MLOCK_T morecore_mutex = PTHREAD_MUTEX_INITIALIZER; + #endif /* HAVE_MORECORE */ + //static MLOCK_T magic_init_mutex = PTHREAD_MUTEX_INITIALIZER; + #else /* WIN32 */ + #define MLOCK_T long + #define INITIAL_LOCK(l) *(l)=0 + #define ACQUIRE_LOCK(l) win32_acquire_lock(l) + #define RELEASE_LOCK(l) win32_release_lock(l) + #if HAVE_MORECORE + static MLOCK_T morecore_mutex; + #endif /* HAVE_MORECORE */ + static MLOCK_T magic_init_mutex; + #endif /* WIN32 */ + #define USE_LOCK_BIT (2U) +#else /* USE_LOCKS */ + #define USE_LOCK_BIT (0U) + #define INITIAL_LOCK(l) +#endif /* USE_LOCKS */ + +#if USE_LOCKS && HAVE_MORECORE + #define ACQUIRE_MORECORE_LOCK(M) ACQUIRE_LOCK((M->morecore_mutex)/*&morecore_mutex*/); + #define RELEASE_MORECORE_LOCK(M) RELEASE_LOCK((M->morecore_mutex)/*&morecore_mutex*/); +#else /* USE_LOCKS && HAVE_MORECORE */ + #define ACQUIRE_MORECORE_LOCK(M) + #define RELEASE_MORECORE_LOCK(M) +#endif /* USE_LOCKS && HAVE_MORECORE */ + +#if USE_LOCKS + /*Currently not suporting this*/ + #define ACQUIRE_MAGIC_INIT_LOCK(M) ACQUIRE_LOCK(((M)->magic_init_mutex)); + //AMOD: changed #define ACQUIRE_MAGIC_INIT_LOCK() + //#define RELEASE_MAGIC_INIT_LOCK() + #define RELEASE_MAGIC_INIT_LOCK(M) RELEASE_LOCK(((M)->magic_init_mutex)); +#else /* USE_LOCKS */ + #define ACQUIRE_MAGIC_INIT_LOCK(M) + #define RELEASE_MAGIC_INIT_LOCK(M) +#endif /* USE_LOCKS */ + +/*CHUNK representation*/ +struct malloc_chunk { + size_t prev_foot; /* Size of previous chunk (if free). */ + size_t head; /* Size and inuse bits. */ + struct malloc_chunk* fd; /* double links -- used only if free. */ + struct malloc_chunk* bk; +}; + +typedef struct malloc_chunk mchunk; +typedef struct malloc_chunk* mchunkptr; +typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */ +typedef unsigned int bindex_t; /* Described below */ +typedef unsigned int binmap_t; /* Described below */ +typedef unsigned int flag_t; /* The type of various bit flag sets */ + + +/* ------------------- Chunks sizes and alignments ----------------------- */ +#define MCHUNK_SIZE (sizeof(mchunk)) + +#if FOOTERS + #define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +#else /* FOOTERS */ + #define CHUNK_OVERHEAD (SIZE_T_SIZE) +#endif /* FOOTERS */ + +/* MMapped chunks need a second word of overhead ... */ +#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +/* ... and additional padding for fake next-chunk at foot */ +#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES) + +/* The smallest size we can malloc is an aligned minimal chunk */ +#define MIN_CHUNK_SIZE ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* conversion from malloc headers to user pointers, and back */ +#define chunk2mem(p) ((void*)((TUint8*)(p) + TWO_SIZE_T_SIZES)) +#define mem2chunk(mem) ((mchunkptr)((TUint8*)(mem) - TWO_SIZE_T_SIZES)) +/* chunk associated with aligned address A */ +#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) + +/* Bounds on request (not chunk) sizes. */ +#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2) +#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE) + +/* pad request bytes into a usable size */ +#define pad_request(req) (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) + +/* pad request, checking for minimum (but not maximum) */ +#define request2size(req) (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req)) + +/* ------------------ Operations on head and foot fields ----------------- */ + +/* + The head field of a chunk is or'ed with PINUSE_BIT when previous + adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in + use. If the chunk was obtained with mmap, the prev_foot field has + IS_MMAPPED_BIT set, otherwise holding the offset of the base of the + mmapped region to the base of the chunk. +*/ +#define PINUSE_BIT (SIZE_T_ONE) +#define CINUSE_BIT (SIZE_T_TWO) +#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT) + +/* Head value for fenceposts */ +#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE) + +/* extraction of fields from head words */ +#define cinuse(p) ((p)->head & CINUSE_BIT) +#define pinuse(p) ((p)->head & PINUSE_BIT) +#define chunksize(p) ((p)->head & ~(INUSE_BITS)) + +#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) +#define clear_cinuse(p) ((p)->head &= ~CINUSE_BIT) + +/* Treat space at ptr +/- offset as a chunk */ +#define chunk_plus_offset(p, s) ((mchunkptr)(((TUint8*)(p)) + (s))) +#define chunk_minus_offset(p, s) ((mchunkptr)(((TUint8*)(p)) - (s))) + +/* Ptr to next or previous physical malloc_chunk. */ +#define next_chunk(p) ((mchunkptr)( ((TUint8*)(p)) + ((p)->head & ~INUSE_BITS))) +#define prev_chunk(p) ((mchunkptr)( ((TUint8*)(p)) - ((p)->prev_foot) )) + +/* extract next chunk's pinuse bit */ +#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT) + +/* Get/set size at footer */ +#define get_foot(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot) +#define set_foot(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot = (s)) + +/* Set size, pinuse bit, and foot */ +#define set_size_and_pinuse_of_free_chunk(p, s) ((p)->head = (s|PINUSE_BIT), set_foot(p, s)) + +/* Set size, pinuse bit, foot, and clear next pinuse */ +#define set_free_with_pinuse(p, s, n) (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) + +#define is_mmapped(p) (!((p)->head & PINUSE_BIT) && ((p)->prev_foot & IS_MMAPPED_BIT)) + +/* Get the internal overhead associated with chunk p */ +#define overhead_for(p) (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) + +/* Return true if malloced space is not necessarily cleared */ +#if MMAP_CLEARS + #define calloc_must_clear(p) (!is_mmapped(p)) +#else /* MMAP_CLEARS */ + #define calloc_must_clear(p) (1) +#endif /* MMAP_CLEARS */ + +/* ---------------------- Overlaid data structures ----------------------- */ +struct malloc_tree_chunk { + /* The first four fields must be compatible with malloc_chunk */ + size_t prev_foot; + size_t head; + struct malloc_tree_chunk* fd; + struct malloc_tree_chunk* bk; + + struct malloc_tree_chunk* child[2]; + struct malloc_tree_chunk* parent; + bindex_t index; +}; + +typedef struct malloc_tree_chunk tchunk; +typedef struct malloc_tree_chunk* tchunkptr; +typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ + +/* A little helper macro for trees */ +#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1]) +/*Segment structur*/ +struct malloc_segment { + TUint8* base; /* base address */ + size_t size; /* allocated size */ + struct malloc_segment* next; /* ptr to next segment */ + flag_t sflags; /* mmap and extern flag */ +}; + +#define is_mmapped_segment(S) ((S)->sflags & IS_MMAPPED_BIT) +#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) + +typedef struct malloc_segment msegment; +typedef struct malloc_segment* msegmentptr; + +/*Malloc State data structur*/ + +#define NSMALLBINS (32U) +#define NTREEBINS (32U) +#define SMALLBIN_SHIFT (3U) +#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT) +#define TREEBIN_SHIFT (8U) +#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT) +#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE) +#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD) + +struct malloc_state { + binmap_t smallmap; + binmap_t treemap; + size_t dvsize; + size_t topsize; + TUint8* least_addr; + mchunkptr dv; + mchunkptr top; + size_t trim_check; + size_t magic; + mchunkptr smallbins[(NSMALLBINS+1)*2]; + tbinptr treebins[NTREEBINS]; + size_t footprint; + size_t max_footprint; + flag_t mflags; +#if USE_LOCKS + MLOCK_T mutex; /* locate lock among fields that rarely change */ + MLOCK_T magic_init_mutex; + MLOCK_T morecore_mutex; +#endif /* USE_LOCKS */ + msegment seg; +}; + +typedef struct malloc_state* mstate; + +/* ------------- Global malloc_state and malloc_params ------------------- */ + +/* + malloc_params holds global properties, including those that can be + dynamically set using mallopt. There is a single instance, mparams, + initialized in init_mparams. +*/ + +struct malloc_params { + size_t magic; + size_t page_size; + size_t granularity; + size_t mmap_threshold; + size_t trim_threshold; + flag_t default_mflags; +#if USE_LOCKS + MLOCK_T magic_init_mutex; +#endif /* USE_LOCKS */ +}; + +/* The global malloc_state used for all non-"mspace" calls */ +/*AMOD: Need to check this as this will be the member of the class*/ + +//static struct malloc_state _gm_; +//#define gm (&_gm_) + +//#define is_global(M) ((M) == &_gm_) +/*AMOD: has changed*/ +#define is_global(M) ((M) == gm) +#define is_initialized(M) ((M)->top != 0) + +/* -------------------------- system alloc setup ------------------------- */ + +/* Operations on mflags */ + +#define use_lock(M) ((M)->mflags & USE_LOCK_BIT) +#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) +#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) + +#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) +#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) +#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) + +#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) +#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) + +#define set_lock(M,L) ((M)->mflags = (L)? ((M)->mflags | USE_LOCK_BIT) : ((M)->mflags & ~USE_LOCK_BIT)) + +/* page-align a size */ +#define page_align(S) (((S) + (mparams.page_size)) & ~(mparams.page_size - SIZE_T_ONE)) + +/* granularity-align a size */ +#define granularity_align(S) (((S) + (mparams.granularity)) & ~(mparams.granularity - SIZE_T_ONE)) + +#define is_page_aligned(S) (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) +#define is_granularity_aligned(S) (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0) + +/* True if segment S holds address A */ +#define segment_holds(S, A) ((TUint8*)(A) >= S->base && (TUint8*)(A) < S->base + S->size) + +#ifndef MORECORE_CANNOT_TRIM + #define should_trim(M,s) ((s) > (M)->trim_check) +#else /* MORECORE_CANNOT_TRIM */ + #define should_trim(M,s) (0) +#endif /* MORECORE_CANNOT_TRIM */ + +/* + TOP_FOOT_SIZE is padding at the end of a segment, including space + that may be needed to place segment records and fenceposts when new + noncontiguous segments are added. +*/ +#define TOP_FOOT_SIZE (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) + +/* ------------------------------- Hooks -------------------------------- */ + +/* + PREACTION should be defined to return 0 on success, and nonzero on + failure. If you are not using locking, you can redefine these to do + anything you like. +*/ + +#if USE_LOCKS + /* Ensure locks are initialized */ + #define GLOBALLY_INITIALIZE() (mparams.page_size == 0 && init_mparams()) + #define PREACTION(M) (use_lock((M))?(ACQUIRE_LOCK((M)->mutex),0):0) /*Action to take like lock before alloc*/ + #define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK((M)->mutex); } + +#else /* USE_LOCKS */ + #ifndef PREACTION + #define PREACTION(M) (0) + #endif /* PREACTION */ + #ifndef POSTACTION + #define POSTACTION(M) + #endif /* POSTACTION */ +#endif /* USE_LOCKS */ + +/* + CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses. + USAGE_ERROR_ACTION is triggered on detected bad frees and + reallocs. The argument p is an address that might have triggered the + fault. It is ignored by the two predefined actions, but might be + useful in custom actions that try to help diagnose errors. +*/ + +#if PROCEED_ON_ERROR + /* A count of the number of corruption errors causing resets */ + int malloc_corruption_error_count; + /* default corruption action */ + static void reset_on_error(mstate m); + #define CORRUPTION_ERROR_ACTION(m) reset_on_error(m) + #define USAGE_ERROR_ACTION(m, p) +#else /* PROCEED_ON_ERROR */ + #ifndef CORRUPTION_ERROR_ACTION + #define CORRUPTION_ERROR_ACTION(m) ABORT + #endif /* CORRUPTION_ERROR_ACTION */ + #ifndef USAGE_ERROR_ACTION + #define USAGE_ERROR_ACTION(m,p) ABORT + #endif /* USAGE_ERROR_ACTION */ +#endif /* PROCEED_ON_ERROR */ + + /* -------------------------- Debugging setup ---------------------------- */ + +#if ! DEBUG + #define check_free_chunk(M,P) + #define check_inuse_chunk(M,P) + #define check_malloced_chunk(M,P,N) + #define check_mmapped_chunk(M,P) + #define check_malloc_state(M) + #define check_top_chunk(M,P) +#else /* DEBUG */ + #define check_free_chunk(M,P) do_check_free_chunk(M,P) + #define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P) + #define check_top_chunk(M,P) do_check_top_chunk(M,P) + #define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N) + #define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P) + #define check_malloc_state(M) do_check_malloc_state(M) + static void do_check_any_chunk(mstate m, mchunkptr p); + static void do_check_top_chunk(mstate m, mchunkptr p); + static void do_check_mmapped_chunk(mstate m, mchunkptr p); + static void do_check_inuse_chunk(mstate m, mchunkptr p); + static void do_check_free_chunk(mstate m, mchunkptr p); + static void do_check_malloced_chunk(mstate m, void* mem, size_t s); + static void do_check_tree(mstate m, tchunkptr t); + static void do_check_treebin(mstate m, bindex_t i); + static void do_check_smallbin(mstate m, bindex_t i); + static void do_check_malloc_state(mstate m); + static int bin_find(mstate m, mchunkptr x); + static size_t traverse_and_check(mstate m); +#endif /* DEBUG */ + +/* ---------------------------- Indexing Bins ---------------------------- */ + +#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +#define small_index(s) ((s) >> SMALLBIN_SHIFT) +#define small_index2size(i) ((i) << SMALLBIN_SHIFT) +#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) + +/* addressing by index. See above about smallbin repositioning */ +#define smallbin_at(M, i) ((sbinptr)((TUint8*)&((M)->smallbins[(i)<<1]))) +#define treebin_at(M,i) (&((M)->treebins[i])) + + +/* Bit representing maximum resolved size in a treebin at i */ +#define bit_for_tree_index(i) (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) + +/* Shift placing maximum resolved bit in a treebin at i as sign bit */ +#define leftshift_for_tree_index(i) ((i == NTREEBINS-1)? 0 : ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) + +/* The size of the smallest chunk held in bin with index i */ +#define minsize_for_tree_index(i) ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) + + +/* ------------------------ Operations on bin maps ----------------------- */ +/* bit corresponding to given index */ +#define idx2bit(i) ((binmap_t)(1) << (i)) +/* Mark/Clear bits with given index */ +#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i)) +#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i)) +#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i)) +#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i)) +#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) +#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) + +/* isolate the least set bit of a bitmap */ +#define least_bit(x) ((x) & -(x)) + +/* mask with all bits to left of least bit of x on */ +#define left_bits(x) ((x<<1) | -(x<<1)) + +/* mask with all bits to left of or equal to least bit of x on */ +#define same_or_left_bits(x) ((x) | -(x)) + + /* isolate the least set bit of a bitmap */ +#define least_bit(x) ((x) & -(x)) + +/* mask with all bits to left of least bit of x on */ +#define left_bits(x) ((x<<1) | -(x<<1)) + +/* mask with all bits to left of or equal to least bit of x on */ +#define same_or_left_bits(x) ((x) | -(x)) + +#if !INSECURE + /* Check if address a is at least as high as any from MORECORE or MMAP */ + #define ok_address(M, a) ((TUint8*)(a) >= (M)->least_addr) + /* Check if address of next chunk n is higher than base chunk p */ + #define ok_next(p, n) ((TUint8*)(p) < (TUint8*)(n)) + /* Check if p has its cinuse bit on */ + #define ok_cinuse(p) cinuse(p) + /* Check if p has its pinuse bit on */ + #define ok_pinuse(p) pinuse(p) +#else /* !INSECURE */ + #define ok_address(M, a) (1) + #define ok_next(b, n) (1) + #define ok_cinuse(p) (1) + #define ok_pinuse(p) (1) +#endif /* !INSECURE */ + +#if (FOOTERS && !INSECURE) + /* Check if (alleged) mstate m has expected magic field */ + #define ok_magic(M) ((M)->magic == mparams.magic) +#else /* (FOOTERS && !INSECURE) */ + #define ok_magic(M) (1) +#endif /* (FOOTERS && !INSECURE) */ + +/* In gcc, use __builtin_expect to minimize impact of checks */ +#if !INSECURE + #if defined(__GNUC__) && __GNUC__ >= 3 + #define RTCHECK(e) __builtin_expect(e, 1) + #else /* GNUC */ + #define RTCHECK(e) (e) + #endif /* GNUC */ + +#else /* !INSECURE */ + #define RTCHECK(e) (1) +#endif /* !INSECURE */ +/* macros to set up inuse chunks with or without footers */ +#if !FOOTERS + #define mark_inuse_foot(M,p,s) + /* Set cinuse bit and pinuse bit of next chunk */ + #define set_inuse(M,p,s) ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT) + /* Set cinuse and pinuse of this chunk and pinuse of next chunk */ + #define set_inuse_and_pinuse(M,p,s) ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT) + /* Set size, cinuse and pinuse bit of this chunk */ + #define set_size_and_pinuse_of_inuse_chunk(M, p, s) ((p)->head = (s|PINUSE_BIT|CINUSE_BIT)) +#else /* FOOTERS */ + /* Set foot of inuse chunk to be xor of mstate and seed */ + #define mark_inuse_foot(M,p,s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic)) + #define get_mstate_for(p) ((mstate)(((mchunkptr)((TUint8*)(p)+(chunksize(p))))->prev_foot ^ mparams.magic)) + #define set_inuse(M,p,s)\ + ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ + (((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT), \ + mark_inuse_foot(M,p,s)) + #define set_inuse_and_pinuse(M,p,s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + (((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT),\ + mark_inuse_foot(M,p,s)) + #define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ + ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ + mark_inuse_foot(M, p, s)) +#endif /* !FOOTERS */ + + +#if ONLY_MSPACES +#define internal_malloc(m, b) mspace_malloc(m, b) +#define internal_free(m, mem) mspace_free(m,mem); +#else /* ONLY_MSPACES */ + #if MSPACES + #define internal_malloc(m, b) (m == gm)? dlmalloc(b) : mspace_malloc(m, b) + #define internal_free(m, mem) if (m == gm) dlfree(mem); else mspace_free(m,mem); + #else /* MSPACES */ + #define internal_malloc(m, b) dlmalloc(b) + #define internal_free(m, mem) dlfree(mem) + #endif /* MSPACES */ +#endif /* ONLY_MSPACES */ +/******CODE TO SUPORT SLAB ALLOCATOR******/ + + #ifndef NDEBUG + #define CHECKING 1 + #endif + + #if CHECKING + //#define ASSERT(x) {if (!(x)) abort();} + #define CHECK(x) x + #else + #define ASSERT(x) (void)0 + #define CHECK(x) (void)0 + #endif + + class slab; + class slabhdr; + #define maxslabsize 56 + #define pageshift 12 + #define pagesize (1<>3) : ((unsigned) bits>>1)) + + #define lowbit(bits) (((unsigned) bits&3) ? 1 - ((unsigned)bits&1) : 3 - (((unsigned)bits>>2)&1)) + #define minpagepower pageshift+2 + #define cellalign 8 + class slabhdr + { + public: + unsigned header; + // made up of + // bits | 31 | 30..28 | 27..18 | 17..12 | 11..8 | 7..0 | + // +----------+--------+--------+--------+---------+----------+ + // field | floating | zero | used-4 | size | pagemap | free pos | + // + slab** parent; // reference to parent's pointer to this slab in tree + slab* child1; // 1st child in tree + slab* child2; // 2nd child in tree + }; + + inline unsigned header_floating(unsigned h) + {return (h&0x80000000);} + const unsigned maxuse = (slabsize - sizeof(slabhdr))>>2; + const unsigned firstpos = sizeof(slabhdr)>>2; + #define checktree(x) (void)0 + template inline T floor(const T addr, unsigned aln) + {return T((unsigned(addr))&~(aln-1));} + template inline T ceiling(T addr, unsigned aln) + {return T((unsigned(addr)+(aln-1))&~(aln-1));} + template inline unsigned lowbits(T addr, unsigned aln) + {return unsigned(addr)&(aln-1);} + template inline int ptrdiff(const T1* a1, const T2* a2) + {return reinterpret_cast(a1) - reinterpret_cast(a2);} + template inline T offset(T addr, unsigned ofs) + {return T(unsigned(addr)+ofs);} + class slabset + { + public: + slab* partial; + }; + + class slab : public slabhdr + { + public: + void init(unsigned clz); + //static slab* slabfor( void* p); + static slab* slabfor(const void* p) ; + private: + unsigned char payload[slabsize-sizeof(slabhdr)]; + }; + class page + { + public: + inline static page* pagefor(slab* s); + //slab slabs; + slab slabs[slabsperpage]; + }; + + + inline page* page::pagefor(slab* s) + {return reinterpret_cast(floor(s, pagesize));} + struct pagecell + { + void* page; + unsigned size; + }; + /******CODE TO SUPORT SLAB ALLOCATOR******/ +#endif/*__DLA__*/ diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp new file mode 100644 index 0000000..17f76f9 --- /dev/null +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -0,0 +1,2898 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Symbian application wrapper of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +** The memory allocator is backported from Symbian OS, and can eventually +** be removed from Qt once it is built in to all supported OS versions. +** The allocator is a composite of three allocators: +** - A page allocator, for large allocations +** - A slab allocator, for small allocations +** - Doug Lea's allocator, for medium size allocations +****************************************************************************/ +#include +#include +#include +#include +#ifndef RND_SDK +struct SThreadCreateInfo + { + TAny* iHandle; + TInt iType; + TThreadFunction iFunction; + TAny* iPtr; + TAny* iSupervisorStack; + TInt iSupervisorStackSize; + TAny* iUserStack; + TInt iUserStackSize; + TInt iInitialThreadPriority; + TPtrC iName; + TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) + }; + +struct SStdEpocThreadCreateInfo : public SThreadCreateInfo + { + RAllocator* iAllocator; + TInt iHeapInitialSize; + TInt iHeapMaxSize; + TInt iPadding; // Make structure size a multiple of 8 bytes + }; +#else +#include +#endif +#include +#include + +//Named local chunks require support from the kernel, which depends on Symbian^3 +#define NO_NAMED_LOCAL_CHUNKS +//Reserving a minimum heap size is not supported, because the implementation does not know what type of +//memory to use. DLA memory grows upwards, slab and page allocators grow downwards. +//This would need kernel support to do properly. +#define NO_RESERVE_MEMORY + +//The BTRACE debug framework requires Symbian OS 9.3 or higher. +//Required header files are not included in S60 3.2 and 5.0 SDKs, but +//they are available for open source versions of Symbian OS. + +//This debug flag uses BTRACE to emit debug traces to identify the heaps. +//Note that it uses the ETest1 trace category which is not reserved +//#define TRACING_HEAPS +//This debug flag uses BTRACE to emit debug traces to aid with debugging +//allocs, frees & reallocs. It should be used together with the KUSERHEAPTRACE +//kernel trace flag to enable heap tracing. +//#define TRACING_ALLOCS + +#if defined(TRACING_ALLOCS) || defined(TRACING_HEAPS) +#include +#endif + +#ifndef __WINS__ +#pragma push +#pragma arm +#endif + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +#include "dla_p.h" +#include "newallocator_p.h" + +// if non zero this causes the slabs to be configured only when the chunk size exceeds this level +#define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data +#define SLAB_CONFIG (0xabe) + +_LIT(KDLHeapPanicCategory, "DL Heap"); +#define GET_PAGE_SIZE(x) HAL::Get(HALData::EMemoryPageSize, x) +#define __CHECK_CELL(p) +#define __POWER_OF_2(x) ((TUint32)((x)^((x)-1))>=(TUint32)(x)) +#define HEAP_PANIC(r) Panic(r) + +LOCAL_C void Panic(TCdtPanic aPanic) +// Panic the process with USER as the category. + { + User::Panic(_L("USER"),aPanic); + } + +size_t getpagesize() +{ + TInt size; + TInt err = GET_PAGE_SIZE(size); + if(err != KErrNone) + return (size_t)0x1000; + return (size_t)size; +} + +#define gm (&iGlobalMallocState) + +RNewAllocator::RNewAllocator(TInt aMaxLength, TInt aAlign, TBool aSingleThread) +// constructor for a fixed heap. Just use DL allocator + :iMinLength(aMaxLength), iMaxLength(aMaxLength), iOffset(0), iGrowBy(0), iChunkHandle(0), + iNestingLevel(0), iAllocCount(0), iFailType(ENone), iTestData(NULL), iChunkSize(aMaxLength) + { + + if ((TUint32)aAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign)) + { + iAlign = aAlign; + } + else + { + iAlign = 4; + } + iPageSize = 0; + iFlags = aSingleThread ? (ESingleThreaded|EFixedSize) : EFixedSize; + + Init(0, 0, 0); + } +#ifdef TRACING_HEAPS +RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, + TInt aAlign, TBool aSingleThread) + : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iNestingLevel(0), iAllocCount(0), + iAlign(aAlign),iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength),iHighWaterMark(aMinLength) +#else +RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, + TInt aAlign, TBool aSingleThread) + : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iNestingLevel(0), iAllocCount(0), + iAlign(aAlign),iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength) +#endif + { + iPageSize = malloc_getpagesize; + __ASSERT_ALWAYS(aOffset >=0, User::Panic(KDLHeapPanicCategory, ETHeapNewBadOffset)); + iGrowBy = _ALIGN_UP(aGrowBy, iPageSize); + iFlags = aSingleThread ? ESingleThreaded : 0; + + // Initialise + // if the heap is created with aMinLength==aMaxLength then it cannot allocate slab or page memory + // so these sub-allocators should be disabled. Otherwise initialise with default values + if (aMinLength == aMaxLength) + Init(0, 0, 0); + else + Init(0xabe, 16, iPageSize*4); // slabs {48, 40, 32, 24, 20, 16, 12, 8}, page {64KB}, trim {16KB} +#ifdef TRACING_HEAPS + RChunk chunk; + chunk.SetHandle(iChunkHandle); + TKName chunk_name; + chunk.FullName(chunk_name); + BTraceContextBig(BTrace::ETest1, 2, 22, chunk_name.Ptr(), chunk_name.Size()); + + TUint32 traceData[4]; + traceData[0] = iChunkHandle; + traceData[1] = iMinLength; + traceData[2] = iMaxLength; + traceData[3] = iAlign; + BTraceContextN(BTrace::ETest1, 1, (TUint32)this, 11, traceData, sizeof(traceData)); +#endif + + } + +TAny* RNewAllocator::operator new(TUint aSize, TAny* aBase) __NO_THROW + { + __ASSERT_ALWAYS(aSize>=sizeof(RNewAllocator), HEAP_PANIC(ETHeapNewBadSize)); + RNewAllocator* h = (RNewAllocator*)aBase; + h->iAlign = 0x80000000; // garbage value + h->iBase = ((TUint8*)aBase) + aSize; + return aBase; + } + +void RNewAllocator::Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshold) + { + __ASSERT_ALWAYS((TUint32)iAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign), HEAP_PANIC(ETHeapNewBadAlignment)); + + /*Moved code which does iunitilization */ + iTop = (TUint8*)this + iMinLength; + iAllocCount = 0; + memset(&mparams,0,sizeof(mparams)); + + Init_Dlmalloc(iTop - iBase, 0, aTrimThreshold); + + slab_init(); + slab_config_bits = aBitmapSlab; +#ifdef DELAYED_SLAB_THRESHOLD + if (iChunkSize < DELAYED_SLAB_THRESHOLD) + { + slab_init_threshold = DELAYED_SLAB_THRESHOLD; + } + else +#endif // DELAYED_SLAB_THRESHOLD + { + slab_init_threshold = KMaxTUint; + slab_config(aBitmapSlab); + } + + /*10-1K,11-2K,12-4k,13-8K,14-16K,15-32K,16-64K*/ + paged_init(aPagePower); + +#ifdef TRACING_ALLOCS + TUint32 traceData[3]; + traceData[0] = aBitmapSlab; + traceData[1] = aPagePower; + traceData[2] = aTrimThreshold; + BTraceContextN(BTrace::ETest1, BTrace::EHeapAlloc, (TUint32)this, 0, traceData, sizeof(traceData)); +#endif + + } + +RNewAllocator::SCell* RNewAllocator::GetAddress(const TAny* aCell) const +// +// As much as possible, check a cell address and backspace it +// to point at the cell header. +// + { + + TLinAddr m = TLinAddr(iAlign - 1); + __ASSERT_ALWAYS(!(TLinAddr(aCell)&m), HEAP_PANIC(ETHeapBadCellAddress)); + + SCell* pC = (SCell*)(((TUint8*)aCell)-EAllocCellSize); + __CHECK_CELL(pC); + + return pC; + } + +TInt RNewAllocator::AllocLen(const TAny* aCell) const +{ + if (ptrdiff(aCell, this) >= 0) + { + mchunkptr m = mem2chunk(aCell); + return chunksize(m) - overhead_for(m); + } + if (lowbits(aCell, pagesize) > cellalign) + return header_size(slab::slabfor(aCell)->header); + if (lowbits(aCell, pagesize) == cellalign) + return *(unsigned*)(offset(aCell,-int(cellalign)))-cellalign; + return paged_descriptor(aCell)->size; +} + +TAny* RNewAllocator::Alloc(TInt aSize) +{ + __ASSERT_ALWAYS((TUint)aSize<(KMaxTInt/2),HEAP_PANIC(ETHeapBadAllocatedCellSize)); + + TAny* addr; + +#ifdef TRACING_ALLOCS + TInt aCnt=0; +#endif + Lock(); + if (aSize < slab_threshold) + { + TInt ix = sizemap[(aSize+3)>>2]; + ASSERT(ix != 0xff); + addr = slab_allocate(slaballoc[ix]); + }else if((aSize >> page_threshold)==0) + { +#ifdef TRACING_ALLOCS + aCnt=1; +#endif + addr = dlmalloc(aSize); + } + else + { +#ifdef TRACING_ALLOCS + aCnt=2; +#endif + addr = paged_allocate(aSize); + } + + iCellCount++; + iTotalAllocSize += aSize; + Unlock(); + +#ifdef TRACING_ALLOCS + if (iFlags & ETraceAllocs) + { + TUint32 traceData[3]; + traceData[0] = AllocLen(addr); + traceData[1] = aSize; + traceData[2] = aCnt; + BTraceContextN(BTrace::EHeap, BTrace::EHeapAlloc, (TUint32)this, (TUint32)addr, traceData, sizeof(traceData)); + } +#endif + + return addr; +} + +TInt RNewAllocator::Compress() + { + if (iFlags & EFixedSize) + return 0; + + Lock(); + dlmalloc_trim(0); + if (spare_page) + { + unmap(spare_page,pagesize); + spare_page = 0; + } + Unlock(); + return 0; + } + +void RNewAllocator::Free(TAny* aPtr) +{ + +#ifdef TRACING_ALLOCS + TInt aCnt=0; +#endif +#ifdef ENABLE_DEBUG_TRACE + RThread me; + TBuf<100> thName; + me.FullName(thName); +#endif + //if (!aPtr) return; //return in case of NULL pointer + + Lock(); + + if (!aPtr) + ; + else if (ptrdiff(aPtr, this) >= 0) + { +#ifdef TRACING_ALLOCS + aCnt = 1; +#endif + dlfree( aPtr); + } + else if (lowbits(aPtr, pagesize) <= cellalign) + { +#ifdef TRACING_ALLOCS + aCnt = 2; +#endif + paged_free(aPtr); + } + else + { +#ifdef TRACING_ALLOCS + aCnt = 0; +#endif + slab_free(aPtr); + } + iCellCount--; + Unlock(); + +#ifdef TRACING_ALLOCS + if (iFlags & ETraceAllocs) + { + TUint32 traceData; + traceData = aCnt; + BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)aPtr, &traceData, sizeof(traceData)); + } +#endif +} + + +void RNewAllocator::Reset() + { + // TODO free everything + } + +#ifdef TRACING_ALLOCS +TAny* RNewAllocator::DLReAllocImpl(TAny* aPtr, TInt aSize) + { + if(ptrdiff(aPtr,this)>=0) + { + // original cell is in DL zone + if(aSize >= slab_threshold && (aSize>>page_threshold)==0) + { + // and so is the new one + Lock(); + TAny* addr = dlrealloc(aPtr,aSize); + Unlock(); + return addr; + } + } + else if(lowbits(aPtr,pagesize)<=cellalign) + { + // original cell is either NULL or in paged zone + if (!aPtr) + return Alloc(aSize); + if(aSize >> page_threshold) + { + // and so is the new one + Lock(); + TAny* addr = paged_reallocate(aPtr,aSize); + Unlock(); + return addr; + } + } + else + { + // original cell is in slab znoe + if(aSize <= header_size(slab::slabfor(aPtr)->header)) + return aPtr; + } + TAny* newp = Alloc(aSize); + if(newp) + { + TInt oldsize = AllocLen(aPtr); + memcpy(newp,aPtr,oldsize=0) + { + // original cell is in DL zone + if(aSize >= slab_threshold && (aSize>>page_threshold)==0) + { + // and so is the new one + Lock(); + TAny* addr = dlrealloc(aPtr,aSize); + Unlock(); + return addr; + } + } + else if(lowbits(aPtr,pagesize)<=cellalign) + { + // original cell is either NULL or in paged zone + if (!aPtr) + return Alloc(aSize); + if(aSize >> page_threshold) + { + // and so is the new one + Lock(); + TAny* addr = paged_reallocate(aPtr,aSize); + Unlock(); + return addr; + } + } + else + { + // original cell is in slab znoe + if(aSize <= header_size(slab::slabfor(aPtr)->header)) + return aPtr; + } + TAny* newp = Alloc(aSize); + if(newp) + { + TInt oldsize = AllocLen(aPtr); + memcpy(newp,aPtr,oldsize +//#define DEBUG_REALLOC +#ifdef DEBUG_REALLOC +#include +#endif +inline int RNewAllocator::init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/) +{ + if (mparams.page_size == 0) + { + size_t s; + mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; + mparams.trim_threshold = aTrimThreshold; + #if MORECORE_CONTIGUOUS + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT; + #else /* MORECORE_CONTIGUOUS */ + mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; + #endif /* MORECORE_CONTIGUOUS */ + + s = (size_t)0x58585858U; + ACQUIRE_MAGIC_INIT_LOCK(&mparams); + if (mparams.magic == 0) { + mparams.magic = s; + /* Set up lock for main malloc area */ + INITIAL_LOCK(&gm->mutex); + gm->mflags = mparams.default_mflags; + } + RELEASE_MAGIC_INIT_LOCK(&mparams); + + mparams.page_size = malloc_getpagesize; + + mparams.granularity = ((DEFAULT_GRANULARITY != 0)? + DEFAULT_GRANULARITY : mparams.page_size); + + /* Sanity-check configuration: + size_t must be unsigned and as wide as pointer type. + ints must be at least 4 bytes. + alignment must be at least 8. + Alignment, min chunk size, and page size must all be powers of 2. + */ + + if ((sizeof(size_t) != sizeof(TUint8*)) || + (MAX_SIZE_T < MIN_CHUNK_SIZE) || + (sizeof(int) < 4) || + (MALLOC_ALIGNMENT < (size_t)8U) || + ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || + ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || + ((mparams.granularity & (mparams.granularity-SIZE_T_ONE)) != 0) || + ((mparams.page_size & (mparams.page_size-SIZE_T_ONE)) != 0)) + ABORT; + } + return 0; +} + +inline void RNewAllocator::init_bins(mstate m) { + /* Establish circular links for smallbins */ + bindex_t i; + for (i = 0; i < NSMALLBINS; ++i) { + sbinptr bin = smallbin_at(m,i); + bin->fd = bin->bk = bin; + } +} +/* ---------------------------- malloc support --------------------------- */ + +/* allocate a large request from the best fitting chunk in a treebin */ +void* RNewAllocator::tmalloc_large(mstate m, size_t nb) { + tchunkptr v = 0; + size_t rsize = -nb; /* Unsigned negation */ + tchunkptr t; + bindex_t idx; + compute_tree_index(nb, idx); + + if ((t = *treebin_at(m, idx)) != 0) { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = + nb << + leftshift_for_tree_index(idx); + tchunkptr rst = 0; /* The deepest untaken right subtree */ + for (;;) { + tchunkptr rt; + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + v = t; + if ((rsize = trem) == 0) + break; + } + rt = t->child[1]; + t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + if (rt != 0 && rt != t) + rst = rt; + if (t == 0) { + t = rst; /* set t to least subtree holding sizes > nb */ + break; + } + sizebits <<= 1; + } + } + if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ + binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; + if (leftbits != 0) { + bindex_t i; + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + t = *treebin_at(m, i); + } + } + while (t != 0) { /* find smallest of tree or subtree */ + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + t = leftmost_child(t); + } + /* If dv is a better fit, return 0 so malloc will use it */ + if (v != 0 && rsize < (size_t)(m->dvsize - nb)) { + if (RTCHECK(ok_address(m, v))) { /* split */ + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + insert_chunk(m, r, rsize); + } + return chunk2mem(v); + } + } + CORRUPTION_ERROR_ACTION(m); + } + return 0; +} + +/* allocate a small request from the best fitting chunk in a treebin */ +void* RNewAllocator::tmalloc_small(mstate m, size_t nb) { + tchunkptr t, v; + size_t rsize; + bindex_t i; + binmap_t leastbit = least_bit(m->treemap); + compute_bit2idx(leastbit, i); + + v = t = *treebin_at(m, i); + rsize = chunksize(t) - nb; + + while ((t = leftmost_child(t)) != 0) { + size_t trem = chunksize(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + } + + if (RTCHECK(ok_address(m, v))) { + mchunkptr r = chunk_plus_offset(v, nb); + assert(chunksize(v) == rsize + nb); + if (RTCHECK(ok_next(v, r))) { + unlink_large_chunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(m, v, (rsize + nb)); + else { + set_size_and_pinuse_of_inuse_chunk(m, v, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(m, r, rsize); + } + return chunk2mem(v); + } + } + CORRUPTION_ERROR_ACTION(m); + return 0; +} + +inline void RNewAllocator::init_top(mstate m, mchunkptr p, size_t psize) +{ + /* Ensure alignment */ + size_t offset = align_offset(chunk2mem(p)); + p = (mchunkptr)((TUint8*)p + offset); + psize -= offset; + m->top = p; + m->topsize = psize; + p->head = psize | PINUSE_BIT; + /* set size of fake trailing chunk holding overhead space only once */ + mchunkptr chunkPlusOff = chunk_plus_offset(p, psize); + chunkPlusOff->head = TOP_FOOT_SIZE; + m->trim_check = mparams.trim_threshold; /* reset on each update */ +} + +void* RNewAllocator::internal_realloc(mstate m, void* oldmem, size_t bytes) +{ + if (bytes >= MAX_REQUEST) { + MALLOC_FAILURE_ACTION; + return 0; + } + if (!PREACTION(m)) { + mchunkptr oldp = mem2chunk(oldmem); + size_t oldsize = chunksize(oldp); + mchunkptr next = chunk_plus_offset(oldp, oldsize); + mchunkptr newp = 0; + void* extra = 0; + + /* Try to either shrink or extend into top. Else malloc-copy-free */ + + if (RTCHECK(ok_address(m, oldp) && ok_cinuse(oldp) && + ok_next(oldp, next) && ok_pinuse(next))) { + size_t nb = request2size(bytes); + if (is_mmapped(oldp)) + newp = mmap_resize(m, oldp, nb); + else + if (oldsize >= nb) { /* already big enough */ + size_t rsize = oldsize - nb; + newp = oldp; + if (rsize >= MIN_CHUNK_SIZE) { + mchunkptr remainder = chunk_plus_offset(newp, nb); + set_inuse(m, newp, nb); + set_inuse(m, remainder, rsize); + extra = chunk2mem(remainder); + } + } + /*AMOD: Modified to optimized*/ + else if (next == m->top && oldsize + m->topsize > nb) + { + /* Expand into top */ + if(oldsize + m->topsize > nb) + { + size_t newsize = oldsize + m->topsize; + size_t newtopsize = newsize - nb; + mchunkptr newtop = chunk_plus_offset(oldp, nb); + set_inuse(m, oldp, nb); + newtop->head = newtopsize |PINUSE_BIT; + m->top = newtop; + m->topsize = newtopsize; + newp = oldp; + } + } + } + else { + USAGE_ERROR_ACTION(m, oldmem); + POSTACTION(m); + return 0; + } + + POSTACTION(m); + + if (newp != 0) { + if (extra != 0) { + internal_free(m, extra); + } + check_inuse_chunk(m, newp); + return chunk2mem(newp); + } + else { + void* newmem = internal_malloc(m, bytes); + if (newmem != 0) { + size_t oc = oldsize - overhead_for(oldp); + memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); + internal_free(m, oldmem); + } + return newmem; + } + } + return 0; +} +/* ----------------------------- statistics ------------------------------ */ +mallinfo RNewAllocator::internal_mallinfo(mstate m) { + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + TInt chunkCnt = 0; + if (!PREACTION(m)) { + check_malloc_state(m); + if (is_initialized(m)) { + size_t nfree = SIZE_T_ONE; /* top always free */ + size_t mfree = m->topsize + TOP_FOOT_SIZE; + size_t sum = mfree; + msegmentptr s = &m->seg; + TInt tmp = (TUint8*)m->top - (TUint8*)s->base; + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + chunkCnt++; + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + size_t sz = chunksize(q); + sum += sz; + if (!cinuse(q)) { + mfree += sz; + ++nfree; + } + q = next_chunk(q); + } + s = s->next; + } + nm.arena = sum; + nm.ordblks = nfree; + nm.hblkhd = m->footprint - sum; + nm.usmblks = m->max_footprint; + nm.uordblks = m->footprint - mfree; + nm.fordblks = mfree; + nm.keepcost = m->topsize; + nm.cellCount= chunkCnt;/*number of chunks allocated*/ + } + POSTACTION(m); + } + return nm; +} + +void RNewAllocator::internal_malloc_stats(mstate m) { +if (!PREACTION(m)) { + size_t maxfp = 0; + size_t fp = 0; + size_t used = 0; + check_malloc_state(m); + if (is_initialized(m)) { + msegmentptr s = &m->seg; + maxfp = m->max_footprint; + fp = m->footprint; + used = fp - (m->topsize + TOP_FOOT_SIZE); + + while (s != 0) { + mchunkptr q = align_as_chunk(s->base); + while (segment_holds(s, q) && + q != m->top && q->head != FENCEPOST_HEAD) { + if (!cinuse(q)) + used -= chunksize(q); + q = next_chunk(q); + } + s = s->next; + } + } + POSTACTION(m); +} +} +/* support for mallopt */ +int RNewAllocator::change_mparam(int param_number, int value) { + size_t val = (size_t)value; + init_mparams(DEFAULT_TRIM_THRESHOLD); + switch(param_number) { + case M_TRIM_THRESHOLD: + mparams.trim_threshold = val; + return 1; + case M_GRANULARITY: + if (val >= mparams.page_size && ((val & (val-1)) == 0)) { + mparams.granularity = val; + return 1; + } + else + return 0; + case M_MMAP_THRESHOLD: + mparams.mmap_threshold = val; + return 1; + default: + return 0; + } +} +/* Get memory from system using MORECORE or MMAP */ +void* RNewAllocator::sys_alloc(mstate m, size_t nb) +{ + TUint8* tbase = CMFAIL; + size_t tsize = 0; + flag_t mmap_flag = 0; + //init_mparams();/*No need to do init_params here*/ + /* Directly map large chunks */ + if (use_mmap(m) && nb >= mparams.mmap_threshold) + { + void* mem = mmap_alloc(m, nb); + if (mem != 0) + return mem; + } + /* + Try getting memory in any of three ways (in most-preferred to + least-preferred order): + 1. A call to MORECORE that can normally contiguously extend memory. + (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or + or main space is mmapped or a previous contiguous call failed) + 2. A call to MMAP new space (disabled if not HAVE_MMAP). + Note that under the default settings, if MORECORE is unable to + fulfill a request, and HAVE_MMAP is true, then mmap is + used as a noncontiguous system allocator. This is a useful backup + strategy for systems with holes in address spaces -- in this case + sbrk cannot contiguously expand the heap, but mmap may be able to + find space. + 3. A call to MORECORE that cannot usually contiguously extend memory. + (disabled if not HAVE_MORECORE) + */ + /*Trying to allocate the memory*/ + if(MORECORE_CONTIGUOUS && !use_noncontiguous(m)) + { + TUint8* br = CMFAIL; + msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (TUint8*)m->top); + size_t asize = 0; + ACQUIRE_MORECORE_LOCK(m); + if (ss == 0) + { /* First time through or recovery */ + TUint8* base = (TUint8*)CALL_MORECORE(0); + if (base != CMFAIL) + { + asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); + /* Adjust to end on a page boundary */ + if (!is_page_aligned(base)) + asize += (page_align((size_t)base) - (size_t)base); + /* Can't call MORECORE if size is negative when treated as signed */ + if (asize < HALF_MAX_SIZE_T &&(br = (TUint8*)(CALL_MORECORE(asize))) == base) + { + tbase = base; + tsize = asize; + } + } + } + else + { + /* Subtract out existing available top space from MORECORE request. */ + asize = granularity_align(nb - m->topsize + TOP_FOOT_SIZE + SIZE_T_ONE); + /* Use mem here only if it did continuously extend old space */ + if (asize < HALF_MAX_SIZE_T && + (br = (TUint8*)(CALL_MORECORE(asize))) == ss->base+ss->size) { + tbase = br; + tsize = asize; + } + } + if (tbase == CMFAIL) { /* Cope with partial failure */ + if (br != CMFAIL) { /* Try to use/extend the space we did get */ + if (asize < HALF_MAX_SIZE_T && + asize < nb + TOP_FOOT_SIZE + SIZE_T_ONE) { + size_t esize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE - asize); + if (esize < HALF_MAX_SIZE_T) { + TUint8* end = (TUint8*)CALL_MORECORE(esize); + if (end != CMFAIL) + asize += esize; + else { /* Can't use; try to release */ + CALL_MORECORE(-asize); + br = CMFAIL; + } + } + } + } + if (br != CMFAIL) { /* Use the space we did get */ + tbase = br; + tsize = asize; + } + else + disable_contiguous(m); /* Don't try contiguous path in the future */ + } + RELEASE_MORECORE_LOCK(m); + } + if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ + size_t req = nb + TOP_FOOT_SIZE + SIZE_T_ONE; + size_t rsize = granularity_align(req); + if (rsize > nb) { /* Fail if wraps around zero */ + TUint8* mp = (TUint8*)(CALL_MMAP(rsize)); + if (mp != CMFAIL) { + tbase = mp; + tsize = rsize; + mmap_flag = IS_MMAPPED_BIT; + } + } + } + if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ + size_t asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); + if (asize < HALF_MAX_SIZE_T) { + TUint8* br = CMFAIL; + TUint8* end = CMFAIL; + ACQUIRE_MORECORE_LOCK(m); + br = (TUint8*)(CALL_MORECORE(asize)); + end = (TUint8*)(CALL_MORECORE(0)); + RELEASE_MORECORE_LOCK(m); + if (br != CMFAIL && end != CMFAIL && br < end) { + size_t ssize = end - br; + if (ssize > nb + TOP_FOOT_SIZE) { + tbase = br; + tsize = ssize; + } + } + } + } + if (tbase != CMFAIL) { + if ((m->footprint += tsize) > m->max_footprint) + m->max_footprint = m->footprint; + if (!is_initialized(m)) { /* first-time initialization */ + m->seg.base = m->least_addr = tbase; + m->seg.size = tsize; + m->seg.sflags = mmap_flag; + m->magic = mparams.magic; + init_bins(m); + if (is_global(m)) + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + else { + /* Offset top by embedded malloc_state */ + mchunkptr mn = next_chunk(mem2chunk(m)); + init_top(m, mn, (size_t)((tbase + tsize) - (TUint8*)mn) -TOP_FOOT_SIZE); + } + }else { + /* Try to merge with an existing segment */ + msegmentptr sp = &m->seg; + while (sp != 0 && tbase != sp->base + sp->size) + sp = sp->next; + if (sp != 0 && !is_extern_segment(sp) && + (sp->sflags & IS_MMAPPED_BIT) == mmap_flag && + segment_holds(sp, m->top)) + { /* append */ + sp->size += tsize; + init_top(m, m->top, m->topsize + tsize); + } + else { + if (tbase < m->least_addr) + m->least_addr = tbase; + sp = &m->seg; + while (sp != 0 && sp->base != tbase + tsize) + sp = sp->next; + if (sp != 0 && + !is_extern_segment(sp) && + (sp->sflags & IS_MMAPPED_BIT) == mmap_flag) { + TUint8* oldbase = sp->base; + sp->base = tbase; + sp->size += tsize; + return prepend_alloc(m, tbase, oldbase, nb); + } + else + add_segment(m, tbase, tsize, mmap_flag); + } + } + if (nb < m->topsize) { /* Allocate from new or extended top space */ + size_t rsize = m->topsize -= nb; + mchunkptr p = m->top; + mchunkptr r = m->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + check_top_chunk(m, m->top); + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); + } + } + /*need to check this*/ + //errno = -1; + return 0; +} +msegmentptr RNewAllocator::segment_holding(mstate m, TUint8* addr) { + msegmentptr sp = &m->seg; + for (;;) { + if (addr >= sp->base && addr < sp->base + sp->size) + return sp; + if ((sp = sp->next) == 0) + return 0; + } +} +/* Unlink the first chunk from a smallbin */ +inline void RNewAllocator::unlink_first_small_chunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I) +{ + mchunkptr F = P->fd; + assert(P != B); + assert(P != F); + assert(chunksize(P) == small_index2size(I)); + if (B == F) + clear_smallmap(M, I); + else if (RTCHECK(ok_address(M, F))) { + B->fd = F; + F->bk = B; + } + else { + CORRUPTION_ERROR_ACTION(M); + } +} +/* Link a free chunk into a smallbin */ +inline void RNewAllocator::insert_small_chunk(mstate M,mchunkptr P, size_t S) +{ + bindex_t I = small_index(S); + mchunkptr B = smallbin_at(M, I); + mchunkptr F = B; + assert(S >= MIN_CHUNK_SIZE); + if (!smallmap_is_marked(M, I)) + mark_smallmap(M, I); + else if (RTCHECK(ok_address(M, B->fd))) + F = B->fd; + else { + CORRUPTION_ERROR_ACTION(M); + } + B->fd = P; + F->bk = P; + P->fd = F; + P->bk = B; +} + + +inline void RNewAllocator::insert_chunk(mstate M,mchunkptr P,size_t S) +{ + if (is_small(S)) + insert_small_chunk(M, P, S); + else{ + tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); + } +} + +inline void RNewAllocator::unlink_large_chunk(mstate M,tchunkptr X) +{ + tchunkptr XP = X->parent; + tchunkptr R; + if (X->bk != X) { + tchunkptr F = X->fd; + R = X->bk; + if (RTCHECK(ok_address(M, F))) { + F->bk = R; + R->fd = F; + } + else { + CORRUPTION_ERROR_ACTION(M); + } + } + else { + tchunkptr* RP; + if (((R = *(RP = &(X->child[1]))) != 0) || + ((R = *(RP = &(X->child[0]))) != 0)) { + tchunkptr* CP; + while ((*(CP = &(R->child[1])) != 0) || + (*(CP = &(R->child[0])) != 0)) { + R = *(RP = CP); + } + if (RTCHECK(ok_address(M, RP))) + *RP = 0; + else { + CORRUPTION_ERROR_ACTION(M); + } + } + } + if (XP != 0) { + tbinptr* H = treebin_at(M, X->index); + if (X == *H) { + if ((*H = R) == 0) + clear_treemap(M, X->index); + } + else if (RTCHECK(ok_address(M, XP))) { + if (XP->child[0] == X) + XP->child[0] = R; + else + XP->child[1] = R; + } + else + CORRUPTION_ERROR_ACTION(M); + if (R != 0) { + if (RTCHECK(ok_address(M, R))) { + tchunkptr C0, C1; + R->parent = XP; + if ((C0 = X->child[0]) != 0) { + if (RTCHECK(ok_address(M, C0))) { + R->child[0] = C0; + C0->parent = R; + } + else + CORRUPTION_ERROR_ACTION(M); + } + if ((C1 = X->child[1]) != 0) { + if (RTCHECK(ok_address(M, C1))) { + R->child[1] = C1; + C1->parent = R; + } + else + CORRUPTION_ERROR_ACTION(M); + } + } + else + CORRUPTION_ERROR_ACTION(M); + } + } +} + +/* Unlink a chunk from a smallbin */ +inline void RNewAllocator::unlink_small_chunk(mstate M, mchunkptr P,size_t S) +{ + mchunkptr F = P->fd; + mchunkptr B = P->bk; + bindex_t I = small_index(S); + assert(P != B); + assert(P != F); + assert(chunksize(P) == small_index2size(I)); + if (F == B) + clear_smallmap(M, I); + else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) && + (B == smallbin_at(M,I) || ok_address(M, B)))) { + F->bk = B; + B->fd = F; + } + else { + CORRUPTION_ERROR_ACTION(M); + } +} + +inline void RNewAllocator::unlink_chunk(mstate M, mchunkptr P, size_t S) +{ + if (is_small(S)) + unlink_small_chunk(M, P, S); + else + { + tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); + } +} + +inline void RNewAllocator::compute_tree_index(size_t S, bindex_t& I) +{ + size_t X = S >> TREEBIN_SHIFT; + if (X == 0) + I = 0; + else if (X > 0xFFFF) + I = NTREEBINS-1; + else { + unsigned int Y = (unsigned int)X; + unsigned int N = ((Y - 0x100) >> 16) & 8; + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; + N += K; + N += K = (((Y <<= K) - 0x4000) >> 16) & 2; + K = 14 - N + ((Y <<= K) >> 15); + I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)); + } +} + +/* ------------------------- Operations on trees ------------------------- */ + +/* Insert chunk into tree */ +inline void RNewAllocator::insert_large_chunk(mstate M,tchunkptr X,size_t S) +{ + tbinptr* H; + bindex_t I; + compute_tree_index(S, I); + H = treebin_at(M, I); + X->index = I; + X->child[0] = X->child[1] = 0; + if (!treemap_is_marked(M, I)) { + mark_treemap(M, I); + *H = X; + X->parent = (tchunkptr)H; + X->fd = X->bk = X; + } + else { + tchunkptr T = *H; + size_t K = S << leftshift_for_tree_index(I); + for (;;) { + if (chunksize(T) != S) { + tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]); + K <<= 1; + if (*C != 0) + T = *C; + else if (RTCHECK(ok_address(M, C))) { + *C = X; + X->parent = T; + X->fd = X->bk = X; + break; + } + else { + CORRUPTION_ERROR_ACTION(M); + break; + } + } + else { + tchunkptr F = T->fd; + if (RTCHECK(ok_address(M, T) && ok_address(M, F))) { + T->fd = F->bk = X; + X->fd = F; + X->bk = T; + X->parent = 0; + break; + } + else { + CORRUPTION_ERROR_ACTION(M); + break; + } + } + } + } +} + +/* + Unlink steps: + + 1. If x is a chained node, unlink it from its same-sized fd/bk links + and choose its bk node as its replacement. + 2. If x was the last node of its size, but not a leaf node, it must + be replaced with a leaf node (not merely one with an open left or + right), to make sure that lefts and rights of descendents + correspond properly to bit masks. We use the rightmost descendent + of x. We could use any other leaf, but this is easy to locate and + tends to counteract removal of leftmosts elsewhere, and so keeps + paths shorter than minimally guaranteed. This doesn't loop much + because on average a node in a tree is near the bottom. + 3. If x is the base of a chain (i.e., has parent links) relink + x's parent and children to x's replacement (or null if none). +*/ + +/* Replace dv node, binning the old one */ +/* Used only when dvsize known to be small */ +inline void RNewAllocator::replace_dv(mstate M, mchunkptr P, size_t S) +{ + size_t DVS = M->dvsize; + if (DVS != 0) { + mchunkptr DV = M->dv; + assert(is_small(DVS)); + insert_small_chunk(M, DV, DVS); + } + M->dvsize = S; + M->dv = P; +} + +inline void RNewAllocator::compute_bit2idx(binmap_t X,bindex_t& I) +{ + unsigned int Y = X - 1; + unsigned int K = Y >> (16-4) & 16; + unsigned int N = K; Y >>= K; + N += K = Y >> (8-3) & 8; Y >>= K; + N += K = Y >> (4-2) & 4; Y >>= K; + N += K = Y >> (2-1) & 2; Y >>= K; + N += K = Y >> (1-0) & 1; Y >>= K; + I = (bindex_t)(N + Y); +} + +void RNewAllocator::add_segment(mstate m, TUint8* tbase, size_t tsize, flag_t mmapped) { + /* Determine locations and sizes of segment, fenceposts, old top */ + TUint8* old_top = (TUint8*)m->top; + msegmentptr oldsp = segment_holding(m, old_top); + TUint8* old_end = oldsp->base + oldsp->size; + size_t ssize = pad_request(sizeof(struct malloc_segment)); + TUint8* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + size_t offset = align_offset(chunk2mem(rawsp)); + TUint8* asp = rawsp + offset; + TUint8* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp; + mchunkptr sp = (mchunkptr)csp; + msegmentptr ss = (msegmentptr)(chunk2mem(sp)); + mchunkptr tnext = chunk_plus_offset(sp, ssize); + mchunkptr p = tnext; + int nfences = 0; + + /* reset top to new space */ + init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); + + /* Set up segment record */ + assert(is_aligned(ss)); + set_size_and_pinuse_of_inuse_chunk(m, sp, ssize); + *ss = m->seg; /* Push current record */ + m->seg.base = tbase; + m->seg.size = tsize; + m->seg.sflags = mmapped; + m->seg.next = ss; + + /* Insert trailing fenceposts */ + for (;;) { + mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE); + p->head = FENCEPOST_HEAD; + ++nfences; + if ((TUint8*)(&(nextp->head)) < old_end) + p = nextp; + else + break; + } + assert(nfences >= 2); + + /* Insert the rest of old top into a bin as an ordinary free chunk */ + if (csp != old_top) { + mchunkptr q = (mchunkptr)old_top; + size_t psize = csp - old_top; + mchunkptr tn = chunk_plus_offset(q, psize); + set_free_with_pinuse(q, psize, tn); + insert_chunk(m, q, psize); + } + + check_top_chunk(m, m->top); +} + + +void* RNewAllocator::prepend_alloc(mstate m, TUint8* newbase, TUint8* oldbase, + size_t nb) { + mchunkptr p = align_as_chunk(newbase); + mchunkptr oldfirst = align_as_chunk(oldbase); + size_t psize = (TUint8*)oldfirst - (TUint8*)p; + mchunkptr q = chunk_plus_offset(p, nb); + size_t qsize = psize - nb; + set_size_and_pinuse_of_inuse_chunk(m, p, nb); + + assert((TUint8*)oldfirst > (TUint8*)q); + assert(pinuse(oldfirst)); + assert(qsize >= MIN_CHUNK_SIZE); + + /* consolidate remainder with first chunk of old base */ + if (oldfirst == m->top) { + size_t tsize = m->topsize += qsize; + m->top = q; + q->head = tsize | PINUSE_BIT; + check_top_chunk(m, q); + } + else if (oldfirst == m->dv) { + size_t dsize = m->dvsize += qsize; + m->dv = q; + set_size_and_pinuse_of_free_chunk(q, dsize); + } + else { + if (!cinuse(oldfirst)) { + size_t nsize = chunksize(oldfirst); + unlink_chunk(m, oldfirst, nsize); + oldfirst = chunk_plus_offset(oldfirst, nsize); + qsize += nsize; + } + set_free_with_pinuse(q, qsize, oldfirst); + insert_chunk(m, q, qsize); + check_free_chunk(m, q); + } + + check_malloced_chunk(m, chunk2mem(p), nb); + return chunk2mem(p); +} + +void* RNewAllocator::mmap_alloc(mstate m, size_t nb) { + size_t mmsize = granularity_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); + if (mmsize > nb) { /* Check for wrap around 0 */ + TUint8* mm = (TUint8*)(DIRECT_MMAP(mmsize)); + if (mm != CMFAIL) { + size_t offset = align_offset(chunk2mem(mm)); + size_t psize = mmsize - offset - MMAP_FOOT_PAD; + mchunkptr p = (mchunkptr)(mm + offset); + p->prev_foot = offset | IS_MMAPPED_BIT; + (p)->head = (psize|CINUSE_BIT); + mark_inuse_foot(m, p, psize); + chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; + + if (mm < m->least_addr) + m->least_addr = mm; + if ((m->footprint += mmsize) > m->max_footprint) + m->max_footprint = m->footprint; + assert(is_aligned(chunk2mem(p))); + check_mmapped_chunk(m, p); + return chunk2mem(p); + } + } + return 0; +} + + int RNewAllocator::sys_trim(mstate m, size_t pad) + { + size_t released = 0; + if (pad < MAX_REQUEST && is_initialized(m)) { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + + if (m->topsize > pad) { + /* Shrink top space in granularity-size units, keeping at least one */ + size_t unit = mparams.granularity; + size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit - SIZE_T_ONE) * unit; + msegmentptr sp = segment_holding(m, (TUint8*)m->top); + + if (!is_extern_segment(sp)) { + if (is_mmapped_segment(sp)) { + if (HAVE_MMAP && + sp->size >= extra && + !has_segment_link(m, sp)) { /* can't shrink if pinned */ + size_t newsize = sp->size - extra; + /* Prefer mremap, fall back to munmap */ + if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || + (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { + released = extra; + } + } + } + else if (HAVE_MORECORE) { + if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ + extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; + ACQUIRE_MORECORE_LOCK(m); + { + /* Make sure end of memory is where we last set it. */ + TUint8* old_br = (TUint8*)(CALL_MORECORE(0)); + if (old_br == sp->base + sp->size) { + TUint8* rel_br = (TUint8*)(CALL_MORECORE(-extra)); + TUint8* new_br = (TUint8*)(CALL_MORECORE(0)); + if (rel_br != CMFAIL && new_br < old_br) + released = old_br - new_br; + } + } + RELEASE_MORECORE_LOCK(m); + } + } + + if (released != 0) { + sp->size -= released; + m->footprint -= released; + init_top(m, m->top, m->topsize - released); + check_top_chunk(m, m->top); + } + } + + /* Unmap any unused mmapped segments */ + if (HAVE_MMAP) + released += release_unused_segments(m); + + /* On failure, disable autotrim to avoid repeated failed future calls */ + if (released == 0) + m->trim_check = MAX_SIZE_T; + } + + return (released != 0)? 1 : 0; + } + + inline int RNewAllocator::has_segment_link(mstate m, msegmentptr ss) + { + msegmentptr sp = &m->seg; + for (;;) { + if ((TUint8*)sp >= ss->base && (TUint8*)sp < ss->base + ss->size) + return 1; + if ((sp = sp->next) == 0) + return 0; + } + } + + /* Unmap and unlink any mmapped segments that don't contain used chunks */ + size_t RNewAllocator::release_unused_segments(mstate m) + { + size_t released = 0; + msegmentptr pred = &m->seg; + msegmentptr sp = pred->next; + while (sp != 0) { + TUint8* base = sp->base; + size_t size = sp->size; + msegmentptr next = sp->next; + if (is_mmapped_segment(sp) && !is_extern_segment(sp)) { + mchunkptr p = align_as_chunk(base); + size_t psize = chunksize(p); + /* Can unmap if first chunk holds entire segment and not pinned */ + if (!cinuse(p) && (TUint8*)p + psize >= base + size - TOP_FOOT_SIZE) { + tchunkptr tp = (tchunkptr)p; + assert(segment_holds(sp, (TUint8*)sp)); + if (p == m->dv) { + m->dv = 0; + m->dvsize = 0; + } + else { + unlink_large_chunk(m, tp); + } + if (CALL_MUNMAP(base, size) == 0) { + released += size; + m->footprint -= size; + /* unlink obsoleted record */ + sp = pred; + sp->next = next; + } + else { /* back out if cannot unmap */ + insert_large_chunk(m, tp, psize); + } + } + } + pred = sp; + sp = next; + }/*End of while*/ + return released; + } + /* Realloc using mmap */ + inline mchunkptr RNewAllocator::mmap_resize(mstate m, mchunkptr oldp, size_t nb) + { + size_t oldsize = chunksize(oldp); + if (is_small(nb)) /* Can't shrink mmap regions below small size */ + return 0; + /* Keep old chunk if big enough but not too big */ + if (oldsize >= nb + SIZE_T_SIZE && + (oldsize - nb) <= (mparams.granularity << 1)) + return oldp; + else { + size_t offset = oldp->prev_foot & ~IS_MMAPPED_BIT; + size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; + size_t newmmsize = granularity_align(nb + SIX_SIZE_T_SIZES + + CHUNK_ALIGN_MASK); + TUint8* cp = (TUint8*)CALL_MREMAP((char*)oldp - offset, + oldmmsize, newmmsize, 1); + if (cp != CMFAIL) { + mchunkptr newp = (mchunkptr)(cp + offset); + size_t psize = newmmsize - offset - MMAP_FOOT_PAD; + newp->head = (psize|CINUSE_BIT); + mark_inuse_foot(m, newp, psize); + chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; + chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; + + if (cp < m->least_addr) + m->least_addr = cp; + if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint) + m->max_footprint = m->footprint; + check_mmapped_chunk(m, newp); + return newp; + } + } + return 0; + } + + +void RNewAllocator::Init_Dlmalloc(size_t capacity, int locked, size_t aTrimThreshold) + { + memset(gm,0,sizeof(malloc_state)); + init_mparams(aTrimThreshold); /* Ensure pagesize etc initialized */ + // The maximum amount that can be allocated can be calculated as:- + // 2^sizeof(size_t) - sizeof(malloc_state) - TOP_FOOT_SIZE - page size (all accordingly padded) + // If the capacity exceeds this, no allocation will be done. + gm->seg.base = gm->least_addr = iBase; + gm->seg.size = capacity; + gm->seg.sflags = !IS_MMAPPED_BIT; + set_lock(gm, locked); + gm->magic = mparams.magic; + init_bins(gm); + init_top(gm, (mchunkptr)iBase, capacity - TOP_FOOT_SIZE); + } + +void* RNewAllocator::dlmalloc(size_t bytes) { + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the dv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in dv. + 4. If it is big enough, use the top chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than dv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the dv chunk. + 3. If it is big enough, use the top chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it + + The ugly goto's here ensure that postaction occurs along all paths. + */ + if (!PREACTION(gm)) { + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); + idx = small_index(nb); + smallbits = gm->smallmap >> idx; + + if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = smallbin_at(gm, idx); + p = b->fd; + assert(chunksize(p) == small_index2size(idx)); + unlink_first_small_chunk(gm, b, p, idx); + set_inuse_and_pinuse(gm, p, small_index2size(idx)); + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb > gm->dvsize) { + if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); + binmap_t leastbit = least_bit(leftbits); + compute_bit2idx(leastbit, i); + b = smallbin_at(gm, i); + p = b->fd; + assert(chunksize(p) == small_index2size(i)); + unlink_first_small_chunk(gm, b, p, i); + rsize = small_index2size(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + set_inuse_and_pinuse(gm, p, small_index2size(i)); + else { + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + r = chunk_plus_offset(p, nb); + set_size_and_pinuse_of_free_chunk(r, rsize); + replace_dv(gm, r, rsize); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else { + nb = pad_request(bytes); + if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + } + + if (nb <= gm->dvsize) { + size_t rsize = gm->dvsize - nb; + mchunkptr p = gm->dv; + if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ + mchunkptr r = gm->dv = chunk_plus_offset(p, nb); + gm->dvsize = rsize; + set_size_and_pinuse_of_free_chunk(r, rsize); + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + } + else { /* exhaust dv */ + size_t dvs = gm->dvsize; + gm->dvsize = 0; + gm->dv = 0; + set_inuse_and_pinuse(gm, p, dvs); + } + mem = chunk2mem(p); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + else if (nb < gm->topsize) { /* Split top */ + size_t rsize = gm->topsize -= nb; + mchunkptr p = gm->top; + mchunkptr r = gm->top = chunk_plus_offset(p, nb); + r->head = rsize | PINUSE_BIT; + set_size_and_pinuse_of_inuse_chunk(gm, p, nb); + mem = chunk2mem(p); + check_top_chunk(gm, gm->top); + check_malloced_chunk(gm, mem, nb); + goto postaction; + } + + mem = sys_alloc(gm, nb); + + postaction: + POSTACTION(gm); + return mem; + } + + return 0; +} + +void RNewAllocator::dlfree(void* mem) { + /* + Consolidate freed chunks with preceeding or succeeding bordering + free chunks, if they exist, and then place in a bin. Intermixed + with special cases for top, dv, mmapped chunks, and usage errors. + */ + + if (mem != 0) + { + mchunkptr p = mem2chunk(mem); +#if FOOTERS + mstate fm = get_mstate_for(p); + if (!ok_magic(fm)) + { + USAGE_ERROR_ACTION(fm, p); + return; + } +#else /* FOOTERS */ +#define fm gm +#endif /* FOOTERS */ + + if (!PREACTION(fm)) + { + check_inuse_chunk(fm, p); + if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) + { + size_t psize = chunksize(p); + iTotalAllocSize -= psize; // TODO DAN + mchunkptr next = chunk_plus_offset(p, psize); + if (!pinuse(p)) + { + size_t prevsize = p->prev_foot; + if ((prevsize & IS_MMAPPED_BIT) != 0) + { + prevsize &= ~IS_MMAPPED_BIT; + psize += prevsize + MMAP_FOOT_PAD; + /*TInt tmp = TOP_FOOT_SIZE; + TUint8* top = (TUint8*)fm->top + fm->topsize + 40; + if((top == (TUint8*)p)&& fm->topsize > 4096) + { + fm->topsize += psize; + msegmentptr sp = segment_holding(fm, (TUint8*)fm->top); + sp->size+=psize; + if (should_trim(fm, fm->topsize)) + sys_trim(fm, 0); + goto postaction; + } + else*/ + { + if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) + fm->footprint -= psize; + goto postaction; + } + } + else + { + mchunkptr prev = chunk_minus_offset(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(ok_address(fm, prev))) + { /* consolidate backward */ + if (p != fm->dv) + { + unlink_chunk(fm, p, prevsize); + } + else if ((next->head & INUSE_BITS) == INUSE_BITS) + { + fm->dvsize = psize; + set_free_with_pinuse(p, psize, next); + goto postaction; + } + } + else + goto erroraction; + } + } + + if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) + { + if (!cinuse(next)) + { /* consolidate forward */ + if (next == fm->top) + { + size_t tsize = fm->topsize += psize; + fm->top = p; + p->head = tsize | PINUSE_BIT; + if (p == fm->dv) + { + fm->dv = 0; + fm->dvsize = 0; + } + if (should_trim(fm, tsize)) + sys_trim(fm, 0); + goto postaction; + } + else if (next == fm->dv) + { + size_t dsize = fm->dvsize += psize; + fm->dv = p; + set_size_and_pinuse_of_free_chunk(p, dsize); + goto postaction; + } + else + { + size_t nsize = chunksize(next); + psize += nsize; + unlink_chunk(fm, next, nsize); + set_size_and_pinuse_of_free_chunk(p, psize); + if (p == fm->dv) + { + fm->dvsize = psize; + goto postaction; + } + } + } + else + set_free_with_pinuse(p, psize, next); + insert_chunk(fm, p, psize); + check_free_chunk(fm, p); + goto postaction; + } + } +erroraction: + USAGE_ERROR_ACTION(fm, p); +postaction: + POSTACTION(fm); + } + } +#if !FOOTERS +#undef fm +#endif /* FOOTERS */ +} + +void* RNewAllocator::dlrealloc(void* oldmem, size_t bytes) { + if (oldmem == 0) + return dlmalloc(bytes); +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { + dlfree(oldmem); + return 0; + } +#endif /* REALLOC_ZERO_BYTES_FREES */ + else { +#if ! FOOTERS + mstate m = gm; +#else /* FOOTERS */ + mstate m = get_mstate_for(mem2chunk(oldmem)); + if (!ok_magic(m)) { + USAGE_ERROR_ACTION(m, oldmem); + return 0; + } +#endif /* FOOTERS */ + return internal_realloc(m, oldmem, bytes); + } +} + + +int RNewAllocator::dlmalloc_trim(size_t pad) { + int result = 0; + if (!PREACTION(gm)) { + result = sys_trim(gm, pad); + POSTACTION(gm); + } + return result; +} + +size_t RNewAllocator::dlmalloc_footprint(void) { + return gm->footprint; +} + +size_t RNewAllocator::dlmalloc_max_footprint(void) { + return gm->max_footprint; +} + +#if !NO_MALLINFO +struct mallinfo RNewAllocator::dlmallinfo(void) { + return internal_mallinfo(gm); +} +#endif /* NO_MALLINFO */ + +void RNewAllocator::dlmalloc_stats() { + internal_malloc_stats(gm); +} + +int RNewAllocator::dlmallopt(int param_number, int value) { + return change_mparam(param_number, value); +} + +//inline slab* slab::slabfor(void* p) +inline slab* slab::slabfor( const void* p) + {return (slab*)(floor(p, slabsize));} + + +void RNewAllocator::tree_remove(slab* s) +{ + slab** r = s->parent; + slab* c1 = s->child1; + slab* c2 = s->child2; + for (;;) + { + if (!c2) + { + *r = c1; + if (c1) + c1->parent = r; + return; + } + if (!c1) + { + *r = c2; + c2->parent = r; + return; + } + if (c1 > c2) + { + slab* c3 = c1; + c1 = c2; + c2 = c3; + } + slab* newc2 = c1->child2; + *r = c1; + c1->parent = r; + c1->child2 = c2; + c2->parent = &c1->child2; + s = c1; + c1 = s->child1; + c2 = newc2; + r = &s->child1; + } +} +void RNewAllocator::tree_insert(slab* s,slab** r) + { + slab* n = *r; + for (;;) + { + if (!n) + { // tree empty + *r = s; + s->parent = r; + s->child1 = s->child2 = 0; + break; + } + if (s < n) + { // insert between parent and n + *r = s; + s->parent = r; + s->child1 = n; + s->child2 = 0; + n->parent = &s->child1; + break; + } + slab* c1 = n->child1; + slab* c2 = n->child2; + if (c1 < c2) + { + r = &n->child1; + n = c1; + } + else + { + r = &n->child2; + n = c2; + } + } + } +void* RNewAllocator::allocnewslab(slabset& allocator) +// +// Acquire and initialise a new slab, returning a cell from the slab +// The strategy is: +// 1. Use the lowest address free slab, if available. This is done by using the lowest slab +// in the page at the root of the partial_page heap (which is address ordered). If the +// is now fully used, remove it from the partial_page heap. +// 2. Allocate a new page for slabs if no empty slabs are available +// +{ + page* p = page::pagefor(partial_page); + if (!p) + return allocnewpage(allocator); + + unsigned h = p->slabs[0].header; + unsigned pagemap = header_pagemap(h); + ASSERT(&p->slabs[hibit(pagemap)] == partial_page); + + unsigned slabix = lowbit(pagemap); + p->slabs[0].header = h &~ (0x100<slabs[slabix]); +} + +/**Defination of this functionis not there in proto code***/ +#if 0 +void RNewAllocator::partial_insert(slab* s) + { + // slab has had first cell freed and needs to be linked back into partial tree + slabset& ss = slaballoc[sizemap[s->clz]]; + + ASSERT(s->used == slabfull); + s->used = ss.fulluse - s->clz; // full-1 loading + tree_insert(s,&ss.partial); + checktree(ss.partial); + } +/**Defination of this functionis not there in proto code***/ +#endif + +void* RNewAllocator::allocnewpage(slabset& allocator) +// +// Acquire and initialise a new page, returning a cell from a new slab +// The partial_page tree is empty (otherwise we'd have used a slab from there) +// The partial_page link is put in the highest addressed slab in the page, and the +// lowest addressed slab is used to fulfill the allocation request +// +{ + page* p = spare_page; + if (p) + spare_page = 0; + else + { + p = static_cast(map(0,pagesize)); + if (!p) + return 0; + } + ASSERT(p == floor(p,pagesize)); + p->slabs[0].header = ((1<<3) + (1<<2) + (1<<1))<<8; // set pagemap + p->slabs[3].parent = &partial_page; + p->slabs[3].child1 = p->slabs[3].child2 = 0; + partial_page = &p->slabs[3]; + return initnewslab(allocator,&p->slabs[0]); +} + +void RNewAllocator::freepage(page* p) +// +// Release an unused page to the OS +// A single page is cached for reuse to reduce thrashing +// the OS allocator. +// +{ + ASSERT(ceiling(p,pagesize) == p); + if (!spare_page) + { + spare_page = p; + return; + } + unmap(p,pagesize); +} + +void RNewAllocator::freeslab(slab* s) +// +// Release an empty slab to the slab manager +// The strategy is: +// 1. The page containing the slab is checked to see the state of the other slabs in the page by +// inspecting the pagemap field in the header of the first slab in the page. +// 2. The pagemap is updated to indicate the new unused slab +// 3. If this is the only unused slab in the page then the slab header is used to add the page to +// the partial_page tree/heap +// 4. If all the slabs in the page are now unused the page is release back to the OS +// 5. If this slab has a higher address than the one currently used to track this page in +// the partial_page heap, the linkage is moved to the new unused slab +// +{ + tree_remove(s); + checktree(*s->parent); + ASSERT(header_usedm4(s->header) == header_size(s->header)-4); + CHECK(s->header |= 0xFF00000); // illegal value for debug purposes + page* p = page::pagefor(s); + unsigned h = p->slabs[0].header; + int slabix = s - &p->slabs[0]; + unsigned pagemap = header_pagemap(h); + p->slabs[0].header = h | (0x100<slabs[hibit(pagemap)]; + pagemap ^= (1< sl) + { // replace current link with new one. Address-order tree so position stays the same + slab** r = sl->parent; + slab* c1 = sl->child1; + slab* c2 = sl->child2; + s->parent = r; + s->child1 = c1; + s->child2 = c2; + *r = s; + if (c1) + c1->parent = &s->child1; + if (c2) + c2->parent = &s->child2; + } + CHECK(if (s < sl) s=sl); + } + ASSERT(header_pagemap(p->slabs[0].header) != 0); + ASSERT(hibit(header_pagemap(p->slabs[0].header)) == unsigned(s - &p->slabs[0])); +} + +void RNewAllocator::slab_init() +{ + slab_threshold=0; + partial_page = 0; + spare_page = 0; + memset(&sizemap[0],0xff,sizeof(sizemap)); + memset(&slaballoc[0],0,sizeof(slaballoc)); +} + +void RNewAllocator::slab_config(unsigned slabbitmap) +{ + ASSERT((slabbitmap & ~okbits) == 0); + ASSERT(maxslabsize <= 60); + + unsigned char ix = 0xff; + unsigned bit = 1<<((maxslabsize>>2)-1); + for (int sz = maxslabsize; sz >= 0; sz -= 4, bit >>= 1) + { + if (slabbitmap & bit) + { + if (ix == 0xff) + slab_threshold=sz+1; + ix = (sz>>2)-1; + } + sizemap[sz>>2] = ix; + } +} + +void* RNewAllocator::slab_allocate(slabset& ss) +// +// Allocate a cell from the given slabset +// Strategy: +// 1. Take the partially full slab at the top of the heap (lowest address). +// 2. If there is no such slab, allocate from a new slab +// 3. If the slab has a non-empty freelist, pop the cell from the front of the list and update the slab +// 4. Otherwise, if the slab is not full, return the cell at the end of the currently used region of +// the slab, updating the slab +// 5. Otherwise, release the slab from the partial tree/heap, marking it as 'floating' and go back to +// step 1 +// +{ + for (;;) + { + slab *s = ss.partial; + if (!s) + break; + unsigned h = s->header; + unsigned free = h & 0xff; // extract free cell positiong + if (free) + { + ASSERT(((free<<2)-sizeof(slabhdr))%header_size(h) == 0); + void* p = offset(s,free<<2); + free = *(unsigned char*)p; // get next pos in free list + h += (h&0x3C000)<<6; // update usedm4 + h &= ~0xff; + h |= free; // update freelist + s->header = h; + ASSERT(header_free(h) == 0 || ((header_free(h)<<2)-sizeof(slabhdr))%header_size(h) == 0); + ASSERT(header_usedm4(h) <= 0x3F8u); + ASSERT((header_usedm4(h)+4)%header_size(h) == 0); + return p; + } + unsigned h2 = h + ((h&0x3C000)<<6); + if (h2 < 0xfc00000) + { + ASSERT((header_usedm4(h2)+4)%header_size(h2) == 0); + s->header = h2; + return offset(s,(h>>18) + sizeof(unsigned) + sizeof(slabhdr)); + } + h |= 0x80000000; // mark the slab as full-floating + s->header = h; + tree_remove(s); + checktree(ss.partial); + // go back and try the next slab... + } + // no partial slabs found, so allocate from a new slab + return allocnewslab(ss); +} + +void RNewAllocator::slab_free(void* p) +// +// Free a cell from the slab allocator +// Strategy: +// 1. Find the containing slab (round down to nearest 1KB boundary) +// 2. Push the cell into the slab's freelist, and update the slab usage count +// 3. If this is the last allocated cell, free the slab to the main slab manager +// 4. If the slab was full-floating then insert the slab in it's respective partial tree +// +{ + ASSERT(lowbits(p,3)==0); + slab* s = slab::slabfor(p); + + unsigned pos = lowbits(p, slabsize); + unsigned h = s->header; + ASSERT(header_usedm4(h) != 0x3fC); // slab is empty already + ASSERT((pos-sizeof(slabhdr))%header_size(h) == 0); + *(unsigned char*)p = (unsigned char)h; + h &= ~0xFF; + h |= (pos>>2); + unsigned size = h & 0x3C000; + iTotalAllocSize -= size; // TODO DAN + if (int(h) >= 0) + { + h -= size<<6; + if (int(h)>=0) + { + s->header = h; + return; + } + freeslab(s); + return; + } + h -= size<<6; + h &= ~0x80000000; + s->header = h; + slabset& ss = slaballoc[(size>>14)-1]; + tree_insert(s,&ss.partial); + checktree(ss.partial); +} + +void* RNewAllocator::initnewslab(slabset& allocator, slab* s) +// +// initialise an empty slab for this allocator and return the fist cell +// pre-condition: the slabset has no partial slabs for allocation +// +{ + ASSERT(allocator.partial==0); + TInt size = 4 + ((&allocator-&slaballoc[0])<<2); // infer size from slab allocator address + unsigned h = s->header & 0xF00; // preserve pagemap only + h |= (size<<12); // set size + h |= (size-4)<<18; // set usedminus4 to one object minus 4 + s->header = h; + allocator.partial = s; + s->parent = &allocator.partial; + s->child1 = s->child2 = 0; + return offset(s,sizeof(slabhdr)); +} + +TAny* RNewAllocator::SetBrk(TInt32 aDelta) +{ + if (iFlags & EFixedSize) + return MFAIL; + + if (aDelta < 0) + { + unmap(offset(iTop, aDelta), -aDelta); + } + else if (aDelta > 0) + { + if (!map(iTop, aDelta)) + return MFAIL; + } + void * p =iTop; + iTop = offset(iTop, aDelta); + return p; +} + +void* RNewAllocator::map(void* p,unsigned sz) +// +// allocate pages in the chunk +// if p is NULL, find an allocate the required number of pages (which must lie in the lower half) +// otherwise commit the pages specified +// +{ +ASSERT(p == floor(p, pagesize)); +ASSERT(sz == ceiling(sz, pagesize)); +ASSERT(sz > 0); + + if (iChunkSize + sz > iMaxLength) + return 0; + + RChunk chunk; + chunk.SetHandle(iChunkHandle); + if (p) + { + TInt r = chunk.Commit(iOffset + ptrdiff(p, this),sz); + if (r < 0) + return 0; + //ASSERT(p = offset(this, r - iOffset)); + } + else + { + TInt r = chunk.Allocate(sz); + if (r < 0) + return 0; + if (r > iOffset) + { + // can't allow page allocations in DL zone + chunk.Decommit(r, sz); + return 0; + } + p = offset(this, r - iOffset); + } + iChunkSize += sz; +#ifdef TRACING_HEAPS + if(iChunkSize > iHighWaterMark) + { + iHighWaterMark = ceiling(iChunkSize,16*pagesize); + + + RChunk chunk; + chunk.SetHandle(iChunkHandle); + TKName chunk_name; + chunk.FullName(chunk_name); + BTraceContextBig(BTrace::ETest1, 4, 44, chunk_name.Ptr(), chunk_name.Size()); + + TUint32 traceData[6]; + traceData[0] = iChunkHandle; + traceData[1] = iMinLength; + traceData[2] = iMaxLength; + traceData[3] = sz; + traceData[4] = iChunkSize; + traceData[5] = iHighWaterMark; + BTraceContextN(BTrace::ETest1, 3, (TUint32)this, 33, traceData, sizeof(traceData)); + } +#endif + if (iChunkSize >= slab_init_threshold) + { // set up slab system now that heap is large enough + slab_config(slab_config_bits); + slab_init_threshold = KMaxTUint; + } + return p; +} + +void* RNewAllocator::remap(void* p,unsigned oldsz,unsigned sz) +{ + if (oldsz > sz) + { // shrink + unmap(offset(p,sz), oldsz-sz); + } + else if (oldsz < sz) + { // grow, try and do this in place first + if (!map(offset(p, oldsz), sz-oldsz)) + { + // need to allocate-copy-free + void* newp = map(0, sz); + memcpy(newp, p, oldsz); + unmap(p,oldsz); + return newp; + } + } + return p; +} + +void RNewAllocator::unmap(void* p,unsigned sz) +{ + ASSERT(p == floor(p, pagesize)); + ASSERT(sz == ceiling(sz, pagesize)); + ASSERT(sz > 0); + + RChunk chunk; + chunk.SetHandle(iChunkHandle); + TInt r = chunk.Decommit(ptrdiff(p, offset(this,-iOffset)), sz); + //TInt offset = (TUint8*)p-(TUint8*)chunk.Base(); + //TInt r = chunk.Decommit(offset,sz); + + ASSERT(r >= 0); + iChunkSize -= sz; +} + +void RNewAllocator::paged_init(unsigned pagepower) + { + if (pagepower == 0) + pagepower = 31; + else if (pagepower < minpagepower) + pagepower = minpagepower; + page_threshold = pagepower; + for (int i=0;ipage == 0) + { + void* p = map(0, nbytes); + if (!p) + return 0; + c->page = p; + c->size = nbytes; + return p; + } + } + // use a cell header + nbytes = ceiling(size + cellalign, pagesize); + void* p = map(0, nbytes); + if (!p) + return 0; + *static_cast(p) = nbytes; + return offset(p, cellalign); +} + +void* RNewAllocator::paged_reallocate(void* p, unsigned size) +{ + if (lowbits(p, pagesize) == 0) + { // continue using descriptor + pagecell* c = paged_descriptor(p); + unsigned nbytes = ceiling(size, pagesize); + void* newp = remap(p, c->size, nbytes); + if (!newp) + return 0; + c->page = newp; + c->size = nbytes; + return newp; + } + else + { // use a cell header + ASSERT(lowbits(p,pagesize) == cellalign); + p = offset(p,-int(cellalign)); + unsigned nbytes = ceiling(size + cellalign, pagesize); + unsigned obytes = *static_cast(p); + void* newp = remap(p, obytes, nbytes); + if (!newp) + return 0; + *static_cast(newp) = nbytes; + return offset(newp, cellalign); + } +} + +void RNewAllocator::paged_free(void* p) +{ + if (lowbits(p,pagesize) == 0) + { // check pagelist + pagecell* c = paged_descriptor(p); + + iTotalAllocSize -= c->size; // TODO DAN + + unmap(p, c->size); + c->page = 0; + c->size = 0; + } + else + { // check page header + unsigned* page = static_cast(offset(p,-int(cellalign))); + unsigned size = *page; + unmap(page,size); + } +} + +pagecell* RNewAllocator::paged_descriptor(const void* p) const +{ + ASSERT(lowbits(p,pagesize) == 0); + // Double casting to keep the compiler happy. Seems to think we can trying to + // change a non-const member (pagelist) in a const function + pagecell* c = (pagecell*)((void*)pagelist); + pagecell* e = c + npagecells; + for (;;) + { + ASSERT(c!=e); + if (c->page == p) + return c; + ++c; + } +} + +RNewAllocator* RNewAllocator::FixedHeap(TAny* aBase, TInt aMaxLength, TInt aAlign, TBool aSingleThread) +/** +Creates a fixed length heap at a specified location. + +On successful return from this function, aMaxLength bytes are committed by the chunk. +The heap cannot be extended. + +@param aBase A pointer to the location where the heap is to be constructed. +@param aMaxLength The length of the heap. If the supplied value is less + than KMinHeapSize, it is discarded and the value KMinHeapSize + is used instead. +@param aAlign The alignment of heap cells. +@param aSingleThread Indicates whether single threaded or not. + +@return A pointer to the new heap, or NULL if the heap could not be created. + +@panic USER 56 if aMaxLength is negative. +*/ +// +// Force construction of the fixed memory. +// + { + + __ASSERT_ALWAYS(aMaxLength>=0, ::Panic(ETHeapMaxLengthNegative)); + if (aMaxLengthiLock.CreateLocal(); + if (r!=KErrNone) + return NULL; + h->iHandles = (TInt*)&h->iLock; + h->iHandleCount = 1; + } + return h; + } + +RNewAllocator* RNewAllocator::ChunkHeap(const TDesC* aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread) +/** +Creates a heap in a local or global chunk. + +The chunk hosting the heap can be local or global. + +A local chunk is one which is private to the process creating it and is not +intended for access by other user processes. +A global chunk is one which is visible to all processes. + +The hosting chunk is local, if the pointer aName is NULL, otherwise +the hosting chunk is global and the descriptor *aName is assumed to contain +the name to be assigned to it. + +Ownership of the host chunk is vested in the current process. + +A minimum and a maximum size for the heap can be specified. On successful +return from this function, the size of the heap is at least aMinLength. +If subsequent requests for allocation of memory from the heap cannot be +satisfied by compressing the heap, the size of the heap is extended in +increments of aGrowBy until the request can be satisfied. Attempts to extend +the heap causes the size of the host chunk to be adjusted. + +Note that the size of the heap cannot be adjusted by more than aMaxLength. + +@param aName If NULL, the function constructs a local chunk to host + the heap. + If not NULL, a pointer to a descriptor containing the name + to be assigned to the global chunk hosting the heap. +@param aMinLength The minimum length of the heap. +@param aMaxLength The maximum length to which the heap can grow. + If the supplied value is less than KMinHeapSize, then it + is discarded and the value KMinHeapSize used instead. +@param aGrowBy The increments to the size of the host chunk. If a value is + not explicitly specified, the value KMinHeapGrowBy is taken + by default +@param aAlign The alignment of heap cells. +@param aSingleThread Indicates whether single threaded or not. + +@return A pointer to the new heap or NULL if the heap could not be created. + +@panic USER 41 if aMinLength is greater than the supplied value of aMaxLength. +@panic USER 55 if aMinLength is negative. +@panic USER 56 if aMaxLength is negative. +*/ +// +// Allocate a Chunk of the requested size and force construction. +// + { + + __ASSERT_ALWAYS(aMinLength>=0, ::Panic(ETHeapMinLengthNegative)); + __ASSERT_ALWAYS(aMaxLength>=aMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); + if (aMaxLength=0, ::Panic(ETHeapMinLengthNegative)); + __ASSERT_ALWAYS(maxLength>=aMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); + aMinLength = _ALIGN_UP(Max(aMinLength, (TInt)sizeof(RNewAllocator) + min_cell) + aOffset, round_up); + + // the new allocator uses a disconnected chunk so must commit the initial allocation + // with Commit() instead of Adjust() + // TInt r=aChunk.Adjust(aMinLength); + //TInt r = aChunk.Commit(aOffset, aMinLength); + + aOffset = maxLength; + //TInt MORE_CORE_OFFSET = maxLength/2; + //TInt r = aChunk.Commit(MORE_CORE_OFFSET, aMinLength); + TInt r = aChunk.Commit(aOffset, aMinLength); + + if (r!=KErrNone) + return NULL; + + RNewAllocator* h = new (aChunk.Base() + aOffset) RNewAllocator(aChunk.Handle(), aOffset, aMinLength, maxLength, aGrowBy, aAlign, aSingleThread); + //RNewAllocator* h = new (aChunk.Base() + MORE_CORE_OFFSET) RNewAllocator(aChunk.Handle(), aOffset, aMinLength, maxLength, aGrowBy, aAlign, aSingleThread); + + TBool duplicateLock = EFalse; + if (!aSingleThread) + { + duplicateLock = aMode & UserHeap::EChunkHeapSwitchTo; + if(h->iLock.CreateLocal(duplicateLock ? EOwnerThread : EOwnerProcess)!=KErrNone) + { + h->iChunkHandle = 0; + return NULL; + } + } + + if (aMode & UserHeap::EChunkHeapSwitchTo) + User::SwitchHeap(h); + + h->iHandles = &h->iChunkHandle; + if (!aSingleThread) + { + // now change the thread-relative chunk/semaphore handles into process-relative handles + h->iHandleCount = 2; + if(duplicateLock) + { + RHandleBase s = h->iLock; + r = h->iLock.Duplicate(RThread()); + s.Close(); + } + if (r==KErrNone && (aMode & UserHeap::EChunkHeapDuplicate)) + { + r = ((RChunk*)&h->iChunkHandle)->Duplicate(RThread()); + if (r!=KErrNone) + h->iLock.Close(), h->iChunkHandle=0; + } + } + else + { + h->iHandleCount = 1; + if (aMode & UserHeap::EChunkHeapDuplicate) + r = ((RChunk*)&h->iChunkHandle)->Duplicate(RThread(), EOwnerThread); + } + + // return the heap address + return (r==KErrNone) ? h : NULL; + } + + +#define UserTestDebugMaskBit(bit) (TBool)(UserSvr::DebugMask(bit>>5) & (1<<(bit&31))) + +#ifndef NO_NAMED_LOCAL_CHUNKS +//this class requires Symbian^3 for ElocalNamed + +// Hack to get access to TChunkCreateInfo internals outside of the kernel +class TFakeChunkCreateInfo: public TChunkCreateInfo + { +public: + void SetThreadNewAllocator(TInt aInitialSize, TInt aMaxSize, const TDesC& aName) + { + iType = TChunkCreate::ENormal | TChunkCreate::EDisconnected | TChunkCreate::EData; + iMaxSize = aMaxSize * 2; + + iInitialBottom = 0; + iInitialTop = aInitialSize; + iAttributes = TChunkCreate::ELocalNamed; + iName = &aName; + iOwnerType = EOwnerThread; + } + }; +#endif + +_LIT(KLitDollarHeap,"$HEAP"); +TInt RNewAllocator::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAllocator*& aHeap, TInt aAlign, TBool aSingleThread) +/** +@internalComponent +*/ +// +// Create a user-side heap +// + { + TInt page_size = malloc_getpagesize; + TInt minLength = _ALIGN_UP(aInfo.iHeapInitialSize, page_size); + TInt maxLength = Max(aInfo.iHeapMaxSize, minLength); +#ifdef TRACING_ALLOCS + if (UserTestDebugMaskBit(96)) // 96 == KUSERHEAPTRACE in nk_trace.h + aInfo.iFlags |= ETraceHeapAllocs; +#endif + // Create the thread's heap chunk. + RChunk c; +#ifndef NO_NAMED_LOCAL_CHUNKS + TFakeChunkCreateInfo createInfo; + createInfo.SetThreadNewAllocator(0, maxLength, KLitDollarHeap()); // Initialise with no memory committed. + TInt r = c.Create(createInfo); +#else + TInt r = c.CreateDisconnectedLocal(0, 0, maxLength * 2); +#endif + if (r!=KErrNone) + return r; + aHeap = ChunkHeap(c, minLength, page_size, maxLength, aAlign, aSingleThread, UserHeap::EChunkHeapSwitchTo|UserHeap::EChunkHeapDuplicate); + c.Close(); + if (!aHeap) + return KErrNoMemory; +#ifdef TRACING_ALLOCS + if (aInfo.iFlags & ETraceHeapAllocs) + { + aHeap->iFlags |= RAllocator::ETraceAllocs; + BTraceContext8(BTrace::EHeap, BTrace::EHeapCreate,(TUint32)aHeap, RNewAllocator::EAllocCellSize); + TInt handle = aHeap->ChunkHandle(); + TInt chunkId = ((RHandleBase&)handle).BTraceId(); + BTraceContext8(BTrace::EHeap, BTrace::EHeapChunkCreate, (TUint32)aHeap, chunkId); + } +#endif + return KErrNone; + } + +/* + * \internal + * Called from the qtmain.lib application wrapper. + * Create a new heap as requested, but use the new allocator + */ +Q_CORE_EXPORT qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) + { + TInt r = KErrNone; + if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) + { + // new heap required + RNewAllocator* pH = NULL; + r = RNewAllocator::CreateThreadHeap(aInfo, pH); + } + else if (aInfo.iAllocator) + { + // sharing a heap + RAllocator* pA = aInfo.iAllocator; + pA->Open(); + User::SwitchAllocator(pA); + } + return r; + } + +#else +/* + * \internal + * Called from the qtmain.lib application wrapper. + * Create a new heap as requested, using the default system allocator + */ +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +{ + return UserHeap::SetupThreadHeap(aNotFirst, aInfo); +} +#endif + +#ifndef __WINS__ +#pragma pop +#endif diff --git a/src/corelib/arch/symbian/newallocator_p.h b/src/corelib/arch/symbian/newallocator_p.h new file mode 100644 index 0000000..8f03506 --- /dev/null +++ b/src/corelib/arch/symbian/newallocator_p.h @@ -0,0 +1,336 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Symbian application wrapper of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +** The memory allocator is backported from Symbian OS, and can eventually +** be removed from Qt once it is built in to all supported OS versions. +** The allocator is a composite of three allocators: +** - A page allocator, for large allocations +** - A slab allocator, for small allocations +** - Doug Lea's allocator, for medium size allocations +****************************************************************************/ +#ifndef NEWALLOCATOR_H +#define NEWALLOCATOR_H + +class RNewAllocator : public RAllocator + { +public: + enum{EAllocCellSize = 8}; + + virtual TAny* Alloc(TInt aSize); + virtual void Free(TAny* aPtr); + virtual TAny* ReAlloc(TAny* aPtr, TInt aSize, TInt aMode=0); + virtual TInt AllocLen(const TAny* aCell) const; + virtual TInt Compress(); + virtual void Reset(); + virtual TInt AllocSize(TInt& aTotalAllocSize) const; + virtual TInt Available(TInt& aBiggestBlock) const; + virtual TInt DebugFunction(TInt aFunc, TAny* a1=NULL, TAny* a2=NULL); +protected: + virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1); + +public: + TInt Size() const + { return iChunkSize; } + + inline TInt MaxLength() const; + inline TUint8* Base() const; + inline TInt Align(TInt a) const; + inline const TAny* Align(const TAny* a) const; + inline void Lock() const; + inline void Unlock() const; + inline TInt ChunkHandle() const; + + /** + @internalComponent + */ + struct _s_align {char c; double d;}; + + /** + The structure of a heap cell header for a heap cell on the free list. + */ + struct SCell { + /** + The length of the cell, which includes the length of + this header. + */ + TInt len; + + + /** + A pointer to the next cell in the free list. + */ + SCell* next; + }; + + /** + The default cell alignment. + */ + enum {ECellAlignment = sizeof(_s_align)-sizeof(double)}; + + /** + Size of a free cell header. + */ + enum {EFreeCellSize = sizeof(SCell)}; + + /** + @internalComponent + */ + enum TDefaultShrinkRatios {EShrinkRatio1=256, EShrinkRatioDflt=512}; + +public: + RNewAllocator(TInt aMaxLength, TInt aAlign=0, TBool aSingleThread=ETrue); + RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign=0, TBool aSingleThread=EFalse); + inline RNewAllocator(); + + TAny* operator new(TUint aSize, TAny* aBase) __NO_THROW; + inline void operator delete(TAny*, TAny*); + +protected: + SCell* GetAddress(const TAny* aCell) const; + +public: + TInt iMinLength; + TInt iMaxLength; // maximum bytes used by the allocator in total + TInt iOffset; // offset of RNewAllocator object from chunk base + TInt iGrowBy; + + TInt iChunkHandle; // handle of chunk + RFastLock iLock; + TUint8* iBase; // bottom of DL memory, i.e. this+sizeof(RNewAllocator) + TUint8* iTop; // top of DL memory (page aligned) + TInt iAlign; + TInt iMinCell; + TInt iPageSize; + SCell iFree; +protected: + TInt iNestingLevel; + TInt iAllocCount; + TAllocFail iFailType; + TInt iFailRate; + TBool iFailed; + TInt iFailAllocCount; + TInt iRand; + TAny* iTestData; +protected: + TInt iChunkSize; // currently allocated bytes in the chunk (== chunk.Size()) + malloc_state iGlobalMallocState; + malloc_params mparams; +private: + void Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshold);/*Init internal data structures*/ + inline int init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/); + inline void init_bins(mstate m); + inline void init_top(mstate m, mchunkptr p, size_t psize); + void* sys_alloc(mstate m, size_t nb); + msegmentptr segment_holding(mstate m, TUint8* addr); + void add_segment(mstate m, TUint8* tbase, size_t tsize, flag_t mmapped); + int sys_trim(mstate m, size_t pad); + int has_segment_link(mstate m, msegmentptr ss); + size_t release_unused_segments(mstate m); + void* mmap_alloc(mstate m, size_t nb);/*Need to check this function*/ + void* prepend_alloc(mstate m, TUint8* newbase, TUint8* oldbase, size_t nb); + void* tmalloc_large(mstate m, size_t nb); + void* tmalloc_small(mstate m, size_t nb); + /*MACROS converted functions*/ + static inline void unlink_first_small_chunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I); + static inline void insert_small_chunk(mstate M,mchunkptr P, size_t S); + static inline void insert_chunk(mstate M,mchunkptr P,size_t S); + static inline void unlink_large_chunk(mstate M,tchunkptr X); + static inline void unlink_small_chunk(mstate M, mchunkptr P,size_t S); + static inline void unlink_chunk(mstate M, mchunkptr P, size_t S); + static inline void compute_tree_index(size_t S, bindex_t& I); + static inline void insert_large_chunk(mstate M,tchunkptr X,size_t S); + static inline void replace_dv(mstate M, mchunkptr P, size_t S); + static inline void compute_bit2idx(binmap_t X,bindex_t& I); + /*MACROS converted functions*/ + TAny* SetBrk(TInt32 aDelta); + void* internal_realloc(mstate m, void* oldmem, size_t bytes); + void internal_malloc_stats(mstate m); + int change_mparam(int param_number, int value); +#if !NO_MALLINFO + mallinfo internal_mallinfo(mstate m); +#endif + void Init_Dlmalloc(size_t capacity, int locked, size_t aTrimThreshold); + void* dlmalloc(size_t); + void dlfree(void*); + void* dlrealloc(void*, size_t); + int dlmallopt(int, int); + size_t dlmalloc_footprint(void); + size_t dlmalloc_max_footprint(void); + #if !NO_MALLINFO + struct mallinfo dlmallinfo(void); + #endif + int dlmalloc_trim(size_t); + size_t dlmalloc_usable_size(void*); + void dlmalloc_stats(void); + inline mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb); + + /****************************Code Added For DL heap**********************/ + friend TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); +private: + unsigned short slab_threshold; + unsigned short page_threshold; // 2^n is smallest cell size allocated in paged allocator + unsigned slab_init_threshold; + unsigned slab_config_bits; + slab* partial_page;// partial-use page tree + page* spare_page; // single empty page cached + unsigned char sizemap[(maxslabsize>>2)+1]; // index of slabset based on size class +private: + static void tree_remove(slab* s); + static void tree_insert(slab* s,slab** r); +public: + enum {okbits = (1<<(maxslabsize>>2))-1}; + void slab_init(); + void slab_config(unsigned slabbitmap); + void* slab_allocate(slabset& allocator); + void slab_free(void* p); + void* allocnewslab(slabset& allocator); + void* allocnewpage(slabset& allocator); + void* initnewslab(slabset& allocator, slab* s); + void freeslab(slab* s); + void freepage(page* p); + void* map(void* p,unsigned sz); + void* remap(void* p,unsigned oldsz,unsigned sz); + void unmap(void* p,unsigned sz); + /**I think we need to move this functions to slab allocator class***/ + static inline unsigned header_free(unsigned h) + {return (h&0x000000ff);} + static inline unsigned header_pagemap(unsigned h) + {return (h&0x00000f00)>>8;} + static inline unsigned header_size(unsigned h) + {return (h&0x0003f000)>>12;} + static inline unsigned header_usedm4(unsigned h) + {return (h&0x0ffc0000)>>18;} + /***paged allocator code***/ + void paged_init(unsigned pagepower); + void* paged_allocate(unsigned size); + void paged_free(void* p); + void* paged_reallocate(void* p, unsigned size); + pagecell* paged_descriptor(const void* p) const ; +private: + // paged allocator structures + enum {npagecells=4}; + pagecell pagelist[npagecells]; // descriptors for page-aligned large allocations + TAny* DLReAllocImpl(TAny* aPtr, TInt aSize); + // to track maximum used + //TInt iHighWaterMark; + + slabset slaballoc[maxslabsize>>2]; + +private: + static RNewAllocator* FixedHeap(TAny* aBase, TInt aMaxLength, TInt aAlign, TBool aSingleThread); + static RNewAllocator* ChunkHeap(const TDesC* aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread); + static RNewAllocator* ChunkHeap(RChunk aChunk, TInt aMinLength, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode); + static RNewAllocator* OffsetChunkHeap(RChunk aChunk, TInt aMinLength, TInt aOffset, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode); + static TInt CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAllocator*& aHeap, TInt aAlign = 0, TBool aSingleThread = EFalse); +}; + +inline RNewAllocator::RNewAllocator() + {} + +/** +@return The maximum length to which the heap can grow. + +@publishedAll +@released +*/ +inline TInt RNewAllocator::MaxLength() const + {return iMaxLength;} + +inline void RNewAllocator::operator delete(TAny*, TAny*) +/** +Called if constructor issued by operator new(TUint aSize, TAny* aBase) throws exception. +This is dummy as corresponding new operator does not allocate memory. +*/ + {} + + +inline TUint8* RNewAllocator::Base() const +/** +Gets a pointer to the start of the heap. + +Note that because of the small space overhead incurred by all allocated cells, +no cell will have the same address as that returned by this function. + +@return A pointer to the base of the heap. +*/ + {return iBase;} + + +inline TInt RNewAllocator::Align(TInt a) const +/** +@internalComponent +*/ + {return _ALIGN_UP(a, iAlign);} + + + + +inline const TAny* RNewAllocator::Align(const TAny* a) const +/** +@internalComponent +*/ + {return (const TAny*)_ALIGN_UP((TLinAddr)a, iAlign);} + + + +inline void RNewAllocator::Lock() const +/** +@internalComponent +*/ + {((RFastLock&)iLock).Wait();} + + + + +inline void RNewAllocator::Unlock() const +/** +@internalComponent +*/ + {((RFastLock&)iLock).Signal();} + + +inline TInt RNewAllocator::ChunkHandle() const +/** +@internalComponent +*/ + { + return iChunkHandle; + } + +#endif // NEWALLOCATOR_H diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 6ef15d4..9c90fbf 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2451,6 +2451,9 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); #endif #endif +//Enable the (backported) new allocator. When it is available in OS, +//this flag should be disabled for that OS version onward +#define QT_USE_NEW_SYMBIAN_ALLOCATOR //Symbian does not support data imports from a DLL #define Q_NO_DATA_RELOCATION diff --git a/src/s60main/newallocator_hook.cpp b/src/s60main/newallocator_hook.cpp new file mode 100644 index 0000000..839f79a --- /dev/null +++ b/src/s60main/newallocator_hook.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the Symbian application wrapper of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include + +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); + +/* + * \internal + * + * Uses link-time symbol preemption to capture a call from the application + * startup. On return, there is some kind of heap allocator installed on the + * thread. + */ +TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +{ + return qt_symbian_SetupThreadHeap(aNotFirst, aInfo); +} diff --git a/src/s60main/s60main.pro b/src/s60main/s60main.pro index a273897..664f155 100644 --- a/src/s60main/s60main.pro +++ b/src/s60main/s60main.pro @@ -14,7 +14,8 @@ symbian { CONFIG -= jpeg INCLUDEPATH += tmp $$QMAKE_INCDIR_QT/QtCore $$MW_LAYER_SYSTEMINCLUDE SOURCES = qts60main.cpp \ - qts60main_mcrt0.cpp + qts60main_mcrt0.cpp \ + newallocator_hook.cpp # s60main needs to be built in ARM mode for GCCE to work. CONFIG += do_not_build_as_thumb -- cgit v0.12 From 56d6fdb40aaaa010f9d4badb41a0caf72ae324f0 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 4 Nov 2009 18:06:04 +0100 Subject: Code cleanup Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/arch.pri | 3 +-- src/corelib/arch/symbian/dla_p.h | 6 +++++- src/corelib/arch/symbian/newallocator.cpp | 28 ++++++++++++++-------------- src/corelib/arch/symbian/newallocator_p.h | 4 ++-- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index 0a1b9a6..94b1caa 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -6,5 +6,4 @@ SOURCES += $$QT_ARCH_CPP/qatomic_symbian.cpp \ $$QT_ARCH_CPP/../generic/qatomic_generic_armv6.cpp HEADERS += $$QT_ARCH_CPP/dla_p.h \ - $$QT_ARCH_CPP/newallocator_p.h \ - $$QT_ARCH_CPP/newallocator.inl + $$QT_ARCH_CPP/newallocator_p.h diff --git a/src/corelib/arch/symbian/dla_p.h b/src/corelib/arch/symbian/dla_p.h index 5bffcf5..0f4b501 100644 --- a/src/corelib/arch/symbian/dla_p.h +++ b/src/corelib/arch/symbian/dla_p.h @@ -974,10 +974,14 @@ struct malloc_params { #endif #if CHECKING - //#define ASSERT(x) {if (!(x)) abort();} + #ifndef ASSERT + #define ASSERT(x) {if (!(x)) abort();} + #endif #define CHECK(x) x #else + #ifndef ASSERT #define ASSERT(x) (void)0 + #endif #define CHECK(x) (void)0 #endif diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp index 17f76f9..1bd23c7 100644 --- a/src/corelib/arch/symbian/newallocator.cpp +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -44,6 +44,7 @@ ** - A slab allocator, for small allocations ** - Doug Lea's allocator, for medium size allocations ****************************************************************************/ +#include #include #include #include @@ -75,7 +76,6 @@ struct SStdEpocThreadCreateInfo : public SThreadCreateInfo #include #endif #include -#include //Named local chunks require support from the kernel, which depends on Symbian^3 #define NO_NAMED_LOCAL_CHUNKS @@ -164,8 +164,8 @@ RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, T #else RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread) - : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iNestingLevel(0), iAllocCount(0), - iAlign(aAlign),iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength) + : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iAlign(aAlign), iNestingLevel(0), iAllocCount(0), + iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength) #endif { iPageSize = malloc_getpagesize; @@ -210,7 +210,7 @@ void RNewAllocator::Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshol { __ASSERT_ALWAYS((TUint32)iAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign), HEAP_PANIC(ETHeapNewBadAlignment)); - /*Moved code which does iunitilization */ + /*Moved code which does initialization */ iTop = (TUint8*)this + iMinLength; iAllocCount = 0; memset(&mparams,0,sizeof(mparams)); @@ -533,7 +533,7 @@ TInt RNewAllocator::Extension_(TUint /* aExtensionId */, TAny*& /* a0 */, TAny* #ifdef DEBUG_REALLOC #include #endif -inline int RNewAllocator::init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/) +int RNewAllocator::init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/) { if (mparams.page_size == 0) { @@ -581,7 +581,7 @@ inline int RNewAllocator::init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_TH return 0; } -inline void RNewAllocator::init_bins(mstate m) { +void RNewAllocator::init_bins(mstate m) { /* Establish circular links for smallbins */ bindex_t i; for (i = 0; i < NSMALLBINS; ++i) { @@ -701,7 +701,7 @@ void* RNewAllocator::tmalloc_small(mstate m, size_t nb) { return 0; } -inline void RNewAllocator::init_top(mstate m, mchunkptr p, size_t psize) +void RNewAllocator::init_top(mstate m, mchunkptr p, size_t psize) { /* Ensure alignment */ size_t offset = align_offset(chunk2mem(p)); @@ -802,7 +802,6 @@ mallinfo RNewAllocator::internal_mallinfo(mstate m) { size_t mfree = m->topsize + TOP_FOOT_SIZE; size_t sum = mfree; msegmentptr s = &m->seg; - TInt tmp = (TUint8*)m->top - (TUint8*)s->base; while (s != 0) { mchunkptr q = align_as_chunk(s->base); chunkCnt++; @@ -834,13 +833,12 @@ mallinfo RNewAllocator::internal_mallinfo(mstate m) { void RNewAllocator::internal_malloc_stats(mstate m) { if (!PREACTION(m)) { - size_t maxfp = 0; size_t fp = 0; size_t used = 0; check_malloc_state(m); if (is_initialized(m)) { msegmentptr s = &m->seg; - maxfp = m->max_footprint; + size_t maxfp = m->max_footprint; fp = m->footprint; used = fp - (m->topsize + TOP_FOOT_SIZE); @@ -1782,7 +1780,7 @@ void RNewAllocator::dlfree(void* mem) { if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) { size_t psize = chunksize(p); - iTotalAllocSize -= psize; // TODO DAN + iTotalAllocSize -= psize; mchunkptr next = chunk_plus_offset(p, psize); if (!pinuse(p)) { @@ -2261,7 +2259,7 @@ void RNewAllocator::slab_free(void* p) h &= ~0xFF; h |= (pos>>2); unsigned size = h & 0x3C000; - iTotalAllocSize -= size; // TODO DAN + iTotalAllocSize -= size; if (int(h) >= 0) { h -= size<<6; @@ -2493,7 +2491,7 @@ void RNewAllocator::paged_free(void* p) { // check pagelist pagecell* c = paged_descriptor(p); - iTotalAllocSize -= c->size; // TODO DAN + iTotalAllocSize -= c->size; unmap(p, c->size); c->page = 0; @@ -2813,7 +2811,9 @@ public: }; #endif +#ifndef NO_NAMED_LOCAL_CHUNKS _LIT(KLitDollarHeap,"$HEAP"); +#endif TInt RNewAllocator::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAllocator*& aHeap, TInt aAlign, TBool aSingleThread) /** @internalComponent @@ -2862,7 +2862,7 @@ TInt RNewAllocator::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAlloca * Called from the qtmain.lib application wrapper. * Create a new heap as requested, but use the new allocator */ -Q_CORE_EXPORT qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) { TInt r = KErrNone; if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) diff --git a/src/corelib/arch/symbian/newallocator_p.h b/src/corelib/arch/symbian/newallocator_p.h index 8f03506..afef570 100644 --- a/src/corelib/arch/symbian/newallocator_p.h +++ b/src/corelib/arch/symbian/newallocator_p.h @@ -154,8 +154,8 @@ protected: private: void Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshold);/*Init internal data structures*/ inline int init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/); - inline void init_bins(mstate m); - inline void init_top(mstate m, mchunkptr p, size_t psize); + void init_bins(mstate m); + void init_top(mstate m, mchunkptr p, size_t psize); void* sys_alloc(mstate m, size_t nb); msegmentptr segment_holding(mstate m, TUint8* addr); void add_segment(mstate m, TUint8* tbase, size_t tsize, flag_t mmapped); -- cgit v0.12 From 9b158b5c64e15b79b4399bd53d026fdaeb492ade Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 4 Nov 2009 18:20:36 +0100 Subject: Fix bug where negative numbers are cast to unsigned and added as an offset It worked, but relied on integer overflow and casting behaviour Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/dla_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/arch/symbian/dla_p.h b/src/corelib/arch/symbian/dla_p.h index 0f4b501..33344ef 100644 --- a/src/corelib/arch/symbian/dla_p.h +++ b/src/corelib/arch/symbian/dla_p.h @@ -1027,7 +1027,7 @@ struct malloc_params { {return unsigned(addr)&(aln-1);} template inline int ptrdiff(const T1* a1, const T2* a2) {return reinterpret_cast(a1) - reinterpret_cast(a2);} - template inline T offset(T addr, unsigned ofs) + template inline T offset(T addr, signed ofs) {return T(unsigned(addr)+ofs);} class slabset { -- cgit v0.12 From c88937dfa5b13df17203c34bec39fe2e03ad8902 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 27 Nov 2009 13:51:10 +0100 Subject: Fill in some of the missing functions Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/newallocator.cpp | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp index 1bd23c7..69164f9 100644 --- a/src/corelib/arch/symbian/newallocator.cpp +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -503,22 +503,41 @@ TAny* RNewAllocator::ReAlloc(TAny* aPtr, TInt aSize, TInt /*aMode = 0*/) TInt RNewAllocator::Available(TInt& aBiggestBlock) const { + //struct mallinfo mi = dlmallinfo(); aBiggestBlock = 0; - return 1000; + //return mi.fordblks; + return ptrdiff(iTop, iBase) - iTotalAllocSize; //HACK /*Need to see how to implement this*/ // TODO: return iHeap.Available(aBiggestBlock); } TInt RNewAllocator::AllocSize(TInt& aTotalAllocSize) const { aTotalAllocSize = iTotalAllocSize; -// aTotalAllocSize = iChunkSize; return iCellCount; } -TInt RNewAllocator::DebugFunction(TInt /*aFunc*/, TAny* /*a1*/, TAny* /*a2*/) +TInt RNewAllocator::DebugFunction(TInt aFunc, TAny* a1, TAny* /*a2*/) { - return 0; + TInt r = KErrNotSupported; + TInt* a1int = reinterpret_cast(a1); + switch(aFunc) { + case RAllocator::ECount: + { + struct mallinfo mi = dlmallinfo(); + *a1int = mi.fordblks; + r = mi.uordblks; + } + break; + case RAllocator::EMarkStart: + case RAllocator::EMarkEnd: + case RAllocator::ESetFail: + case RAllocator::ECheck: + r = KErrNone; + break; + } + return r; } + TInt RNewAllocator::Extension_(TUint /* aExtensionId */, TAny*& /* a0 */, TAny* /* a1 */) { return KErrNotSupported; @@ -2862,7 +2881,7 @@ TInt RNewAllocator::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAlloca * Called from the qtmain.lib application wrapper. * Create a new heap as requested, but use the new allocator */ -Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool /*aNotFirst*/, SStdEpocThreadCreateInfo& aInfo) { TInt r = KErrNone; if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) -- cgit v0.12 From 8a7b487497bb18a2f30ebeeddf82fbf0fff4cc54 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 3 Dec 2009 13:47:45 +0100 Subject: Implement RNewAllocator::Available for Doug Lea section Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/dla_p.h | 1 + src/corelib/arch/symbian/newallocator.cpp | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/corelib/arch/symbian/dla_p.h b/src/corelib/arch/symbian/dla_p.h index 33344ef..9d31499 100644 --- a/src/corelib/arch/symbian/dla_p.h +++ b/src/corelib/arch/symbian/dla_p.h @@ -241,6 +241,7 @@ struct mallinfo { MALLINFO_FIELD_TYPE fordblks; /* total free space */ MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ MALLINFO_FIELD_TYPE cellCount;/* Number of chunks allocated*/ + MALLINFO_FIELD_TYPE largestBlock; }; #endif /* HAVE_USR_INCLUDE_MALLOC_H */ diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp index 69164f9..2d4bd05 100644 --- a/src/corelib/arch/symbian/newallocator.cpp +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -503,12 +503,13 @@ TAny* RNewAllocator::ReAlloc(TAny* aPtr, TInt aSize, TInt /*aMode = 0*/) TInt RNewAllocator::Available(TInt& aBiggestBlock) const { - //struct mallinfo mi = dlmallinfo(); - aBiggestBlock = 0; - //return mi.fordblks; - return ptrdiff(iTop, iBase) - iTotalAllocSize; //HACK - /*Need to see how to implement this*/ - // TODO: return iHeap.Available(aBiggestBlock); + //TODO: consider page and slab allocators + + //this gets free space in DL region - the C ported code doesn't respect const yet. + RNewAllocator* self = const_cast (this); + mallinfo info = self->dlmallinfo(); + aBiggestBlock = info.largestBlock; + return info.fordblks; } TInt RNewAllocator::AllocSize(TInt& aTotalAllocSize) const { @@ -812,7 +813,7 @@ void* RNewAllocator::internal_realloc(mstate m, void* oldmem, size_t bytes) } /* ----------------------------- statistics ------------------------------ */ mallinfo RNewAllocator::internal_mallinfo(mstate m) { - struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; TInt chunkCnt = 0; if (!PREACTION(m)) { check_malloc_state(m); @@ -829,6 +830,8 @@ mallinfo RNewAllocator::internal_mallinfo(mstate m) { size_t sz = chunksize(q); sum += sz; if (!cinuse(q)) { + if (sz > nm.largestBlock) + nm.largestBlock = sz; mfree += sz; ++nfree; } -- cgit v0.12 From f47f2e3200103e042ae6af4918c93308b4ec014d Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 4 Dec 2009 15:25:15 +0000 Subject: Fix BTRACE logging Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/newallocator.cpp | 186 ++++++++++++------------------ src/corelib/arch/symbian/newallocator_p.h | 3 +- 2 files changed, 77 insertions(+), 112 deletions(-) diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp index 2d4bd05..6250371 100644 --- a/src/corelib/arch/symbian/newallocator.cpp +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -49,6 +49,7 @@ #include #include #include +#define RND_SDK #ifndef RND_SDK struct SThreadCreateInfo { @@ -84,17 +85,19 @@ struct SStdEpocThreadCreateInfo : public SThreadCreateInfo //This would need kernel support to do properly. #define NO_RESERVE_MEMORY -//The BTRACE debug framework requires Symbian OS 9.3 or higher. -//Required header files are not included in S60 3.2 and 5.0 SDKs, but +//The BTRACE debug framework requires Symbian OS 9.4 or higher. +//Required header files are not included in S60 5.0 SDKs, but //they are available for open source versions of Symbian OS. +//Note that although Symbian OS 9.3 supports BTRACE, the usage in this file +//depends on 9.4 header files. //This debug flag uses BTRACE to emit debug traces to identify the heaps. //Note that it uses the ETest1 trace category which is not reserved -//#define TRACING_HEAPS +#define TRACING_HEAPS //This debug flag uses BTRACE to emit debug traces to aid with debugging //allocs, frees & reallocs. It should be used together with the KUSERHEAPTRACE //kernel trace flag to enable heap tracing. -//#define TRACING_ALLOCS +#define TRACING_ALLOCS #if defined(TRACING_ALLOCS) || defined(TRACING_HEAPS) #include @@ -156,17 +159,11 @@ RNewAllocator::RNewAllocator(TInt aMaxLength, TInt aAlign, TBool aSingleThread) Init(0, 0, 0); } -#ifdef TRACING_HEAPS -RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, - TInt aAlign, TBool aSingleThread) - : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iNestingLevel(0), iAllocCount(0), - iAlign(aAlign),iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength),iHighWaterMark(aMinLength) -#else + RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread) : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iAlign(aAlign), iNestingLevel(0), iAllocCount(0), - iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength) -#endif + iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength),iHighWaterMark(aMinLength) { iPageSize = malloc_getpagesize; __ASSERT_ALWAYS(aOffset >=0, User::Panic(KDLHeapPanicCategory, ETHeapNewBadOffset)); @@ -393,112 +390,79 @@ void RNewAllocator::Free(TAny* aPtr) void RNewAllocator::Reset() { // TODO free everything + User::Panic(_L("RNewAllocator"), 1); //this should never be called } -#ifdef TRACING_ALLOCS -TAny* RNewAllocator::DLReAllocImpl(TAny* aPtr, TInt aSize) - { - if(ptrdiff(aPtr,this)>=0) +inline void RNewAllocator::TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone) { - // original cell is in DL zone - if(aSize >= slab_threshold && (aSize>>page_threshold)==0) - { - // and so is the new one - Lock(); - TAny* addr = dlrealloc(aPtr,aSize); - Unlock(); - return addr; - } - } - else if(lowbits(aPtr,pagesize)<=cellalign) - { - // original cell is either NULL or in paged zone - if (!aPtr) - return Alloc(aSize); - if(aSize >> page_threshold) - { - // and so is the new one - Lock(); - TAny* addr = paged_reallocate(aPtr,aSize); - Unlock(); - return addr; - } - } - else - { - // original cell is in slab znoe - if(aSize <= header_size(slab::slabfor(aPtr)->header)) - return aPtr; - } - TAny* newp = Alloc(aSize); - if(newp) - { - TInt oldsize = AllocLen(aPtr); - memcpy(newp,aPtr,oldsize= 0 && aPtr != aNewPtr) { + BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)aPtr, &aZone, sizeof(aZone)); + } + } #else - if(ptrdiff(aPtr,this)>=0) - { - // original cell is in DL zone - if(aSize >= slab_threshold && (aSize>>page_threshold)==0) - { - // and so is the new one - Lock(); - TAny* addr = dlrealloc(aPtr,aSize); - Unlock(); - return addr; - } - } - else if(lowbits(aPtr,pagesize)<=cellalign) - { - // original cell is either NULL or in paged zone - if (!aPtr) - return Alloc(aSize); - if(aSize >> page_threshold) - { - // and so is the new one - Lock(); - TAny* addr = paged_reallocate(aPtr,aSize); - Unlock(); - return addr; - } - } - else - { - // original cell is in slab znoe - if(aSize <= header_size(slab::slabfor(aPtr)->header)) - return aPtr; + Q_UNUSED(aPtr); + Q_UNUSED(aSize); + Q_UNUSED(aNewPtr); + Q_UNUSED(aZone); +#endif } - TAny* newp = Alloc(aSize); - if(newp) + +TAny* RNewAllocator::ReAlloc(TAny* aPtr, TInt aSize, TInt /*aMode = 0*/) { - TInt oldsize = AllocLen(aPtr); - memcpy(newp,aPtr,oldsize=0) + { + // original cell is in DL zone + if(aSize >= slab_threshold && (aSize>>page_threshold)==0) + { + // and so is the new one + Lock(); + TAny* addr = dlrealloc(aPtr,aSize); + Unlock(); + TraceReAlloc(aPtr, aSize, addr, 0); + return addr; + } + } + else if(lowbits(aPtr,pagesize)<=cellalign) + { + // original cell is either NULL or in paged zone + if (!aPtr) + return Alloc(aSize); + if(aSize >> page_threshold) + { + // and so is the new one + Lock(); + TAny* addr = paged_reallocate(aPtr,aSize); + Unlock(); + TraceReAlloc(aPtr, aSize, addr, 2); + return addr; + } + } + else + { + // original cell is in slab znoe + if(aSize <= header_size(slab::slabfor(aPtr)->header)) { + TraceReAlloc(aPtr, aSize, aPtr, 1); + return aPtr; + } + } + TAny* newp = Alloc(aSize); + if(newp) + { + TInt oldsize = AllocLen(aPtr); + memcpy(newp,aPtr,oldsize Date: Mon, 7 Dec 2009 14:26:39 +0000 Subject: Enable call stack tracing of allocs, for memory leak debugging Task-number: QT-3967 Reviewed-by: mread --- src/corelib/arch/symbian/arch.pri | 5 ++- src/corelib/arch/symbian/newallocator.cpp | 70 ++++++++++++++++++++++--------- src/corelib/arch/symbian/newallocator_p.h | 1 + 3 files changed, 55 insertions(+), 21 deletions(-) diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index 94b1caa..bab042c 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -2,8 +2,9 @@ # Symbian architecture # SOURCES += $$QT_ARCH_CPP/qatomic_symbian.cpp \ - $$QT_ARCH_CPP/newallocator.cpp \ - $$QT_ARCH_CPP/../generic/qatomic_generic_armv6.cpp + $$QT_ARCH_CPP/../armv6/qatomic_generic_armv6.cpp \ + $$QT_ARCH_CPP/newallocator.cpp HEADERS += $$QT_ARCH_CPP/dla_p.h \ $$QT_ARCH_CPP/newallocator_p.h +exists($$EPOCROOT/epoc32/include/u32std.h):DEFINES += QT_SYMBIAN_HAVE_U32STD_H diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp index 6250371..7025483 100644 --- a/src/corelib/arch/symbian/newallocator.cpp +++ b/src/corelib/arch/symbian/newallocator.cpp @@ -49,8 +49,8 @@ #include #include #include -#define RND_SDK -#ifndef RND_SDK + +#ifndef QT_SYMBIAN_HAVE_U32STD_H struct SThreadCreateInfo { TAny* iHandle; @@ -93,11 +93,14 @@ struct SStdEpocThreadCreateInfo : public SThreadCreateInfo //This debug flag uses BTRACE to emit debug traces to identify the heaps. //Note that it uses the ETest1 trace category which is not reserved -#define TRACING_HEAPS +//#define TRACING_HEAPS //This debug flag uses BTRACE to emit debug traces to aid with debugging //allocs, frees & reallocs. It should be used together with the KUSERHEAPTRACE //kernel trace flag to enable heap tracing. -#define TRACING_ALLOCS +//#define TRACING_ALLOCS +//This debug flag turns on tracing of the call stack for each alloc trace. +//It is dependent on TRACING_ALLOCS. +//#define TRACING_CALLSTACKS #if defined(TRACING_ALLOCS) || defined(TRACING_HEAPS) #include @@ -129,6 +132,32 @@ LOCAL_C void Panic(TCdtPanic aPanic) User::Panic(_L("USER"),aPanic); } +#define STACKSIZE 32 +inline void RNewAllocator::TraceCallStack() +{ +#ifdef TRACING_CALLSTACKS + TUint32 filteredStack[STACKSIZE]; + TThreadStackInfo info; + TUint32 *sp = (TUint32*)&sp; + RThread().StackInfo(info); + Lock(); + TInt i; + for (i=0;i=info.iBase) break; + while ((TLinAddr)sp < info.iBase) { + TUint32 cur = *sp++; + TUint32 range = cur & 0xF0000000; + if (range == 0x80000000 || range == 0x70000000) { + filteredStack[i] = cur; + break; + } + } + } + Unlock(); + BTraceContextBig(BTrace::EHeap, BTrace::EHeapCallStack, (TUint32)this, filteredStack, i * 4); +#endif +} + size_t getpagesize() { TInt size; @@ -313,6 +342,7 @@ TAny* RNewAllocator::Alloc(TInt aSize) traceData[1] = aSize; traceData[2] = aCnt; BTraceContextN(BTrace::EHeap, BTrace::EHeapAlloc, (TUint32)this, (TUint32)addr, traceData, sizeof(traceData)); + TraceCallStack(); } #endif @@ -382,6 +412,7 @@ void RNewAllocator::Free(TAny* aPtr) TUint32 traceData; traceData = aCnt; BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)aPtr, &traceData, sizeof(traceData)); + TraceCallStack(); } #endif } @@ -393,29 +424,30 @@ void RNewAllocator::Reset() User::Panic(_L("RNewAllocator"), 1); //this should never be called } -inline void RNewAllocator::TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone) - { #ifdef TRACING_ALLOCS - if (aNewPtr && (iFlags & ETraceAllocs)) - { +inline void RNewAllocator::TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone) +{ + if (aNewPtr && (iFlags & ETraceAllocs)) { TUint32 traceData[3]; traceData[0] = AllocLen(aNewPtr); traceData[1] = aSize; - traceData[2] = (TUint32)aPtr; - BTraceContextN(BTrace::EHeap, BTrace::EHeapReAlloc,(TUint32)this, (TUint32)aNewPtr,traceData, sizeof(traceData)); - + traceData[2] = (TUint32) aPtr; + BTraceContextN(BTrace::EHeap, BTrace::EHeapReAlloc, (TUint32) this, (TUint32) aNewPtr, + traceData, sizeof(traceData)); + TraceCallStack(); //workaround for SAW not handling reallocs properly - if(aZone >= 0 && aPtr != aNewPtr) { - BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)aPtr, &aZone, sizeof(aZone)); - } + if (aZone >= 0 && aPtr != aNewPtr) { + BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32) this, (TUint32) aPtr, + &aZone, sizeof(aZone)); + TraceCallStack(); } + } +} #else - Q_UNUSED(aPtr); - Q_UNUSED(aSize); - Q_UNUSED(aNewPtr); - Q_UNUSED(aZone); +//Q_UNUSED generates code that prevents the compiler optimising out the empty inline function +inline void RNewAllocator::TraceReAlloc(TAny* , TInt , TAny* , TInt ) +{} #endif - } TAny* RNewAllocator::ReAlloc(TAny* aPtr, TInt aSize, TInt /*aMode = 0*/) { diff --git a/src/corelib/arch/symbian/newallocator_p.h b/src/corelib/arch/symbian/newallocator_p.h index c72f96b..fd28f2d 100644 --- a/src/corelib/arch/symbian/newallocator_p.h +++ b/src/corelib/arch/symbian/newallocator_p.h @@ -248,6 +248,7 @@ private: enum {npagecells=4}; pagecell pagelist[npagecells]; // descriptors for page-aligned large allocations inline void TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone); + inline void TraceCallStack(); // to track maximum used //TInt iHighWaterMark; -- cgit v0.12 From 40b413ca994fd26404672cefa71dc36fd2626b67 Mon Sep 17 00:00:00 2001 From: mread Date: Wed, 22 Sep 2010 13:27:15 +0100 Subject: Qt apps to use the Symbian^4 fast allocator in pre-Symbian^4 platforms The hybrid heap allocator has been copied from Symbian^4 (MCL wk36 initially) and is installed by qtmain.lib as the initial allocator for Qt apps. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/arch.pri | 10 +- src/corelib/arch/symbian/common_p.h | 105 + src/corelib/arch/symbian/debugfunction.cpp | 1147 +++++++ src/corelib/arch/symbian/dla_p.h | 622 ++-- src/corelib/arch/symbian/heap_hybrid.cpp | 3337 +++++++++++++++++++++ src/corelib/arch/symbian/heap_hybrid_p.h | 391 +++ src/corelib/arch/symbian/newallocator.cpp | 2916 ------------------ src/corelib/arch/symbian/newallocator_p.h | 338 --- src/corelib/arch/symbian/page_alloc_p.h | 68 + src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 99 + src/corelib/arch/symbian/qt_hybridHeap_symbian.h | 76 + src/corelib/arch/symbian/slab_p.h | 125 + src/corelib/global/qglobal.h | 2 + src/s60installs/eabi/QtCoreu.def | 1 + src/s60main/newallocator_hook.cpp | 7 +- 15 files changed, 5626 insertions(+), 3618 deletions(-) create mode 100644 src/corelib/arch/symbian/common_p.h create mode 100644 src/corelib/arch/symbian/debugfunction.cpp create mode 100644 src/corelib/arch/symbian/heap_hybrid.cpp create mode 100644 src/corelib/arch/symbian/heap_hybrid_p.h delete mode 100644 src/corelib/arch/symbian/newallocator.cpp delete mode 100644 src/corelib/arch/symbian/newallocator_p.h create mode 100644 src/corelib/arch/symbian/page_alloc_p.h create mode 100644 src/corelib/arch/symbian/qt_heapsetup_symbian.cpp create mode 100644 src/corelib/arch/symbian/qt_hybridHeap_symbian.h create mode 100644 src/corelib/arch/symbian/slab_p.h diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index bab042c..8c546c0 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -3,8 +3,14 @@ # SOURCES += $$QT_ARCH_CPP/qatomic_symbian.cpp \ $$QT_ARCH_CPP/../armv6/qatomic_generic_armv6.cpp \ - $$QT_ARCH_CPP/newallocator.cpp + $$QT_ARCH_CPP/heap_hybrid.cpp \ + $$QT_ARCH_CPP/debugfunction.cpp \ + $$QT_ARCH_CPP/qt_heapsetup_symbian.cpp HEADERS += $$QT_ARCH_CPP/dla_p.h \ - $$QT_ARCH_CPP/newallocator_p.h + $$QT_ARCH_CPP/heap_hybrid_p.h \ + $$QT_ARCH_CPP/common_p.h \ + $$QT_ARCH_CPP/page_alloc_p.h \ + $$QT_ARCH_CPP/slab_p.h + exists($$EPOCROOT/epoc32/include/u32std.h):DEFINES += QT_SYMBIAN_HAVE_U32STD_H diff --git a/src/corelib/arch/symbian/common_p.h b/src/corelib/arch/symbian/common_p.h new file mode 100644 index 0000000..d7682ae --- /dev/null +++ b/src/corelib/arch/symbian/common_p.h @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __E32_COMMON_H__ +#define __E32_COMMON_H__ + +#ifdef __KERNEL_MODE__ +#include +#include +#include "u32std.h" +#else +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +GLREF_C void Panic(TCdtPanic aPanic); +GLDEF_C void PanicBadArrayIndex(); +GLREF_C TInt __DoConvertNum(TUint, TRadix, TUint, TUint8*&); +GLREF_C TInt __DoConvertNum(Uint64, TRadix, TUint, TUint8*&); + +#ifdef __KERNEL_MODE__ +GLREF_C void KernHeapFault(TCdtPanic aPanic); +GLREF_C void KHeapCheckThreadState(); +TInt StringLength(const TUint16* aPtr); +TInt StringLength(const TUint8* aPtr); + +#define STD_CLASS Kern +#define STRING_LENGTH(s) StringLength(s) +#define STRING_LENGTH_16(s) StringLength(s) +#define PANIC_CURRENT_THREAD(c,r) Kern::PanicCurrentThread(c, r) +#define __KERNEL_CHECK_RADIX(r) __ASSERT_ALWAYS(((r)==EDecimal)||((r)==EHex),Panic(EInvalidRadix)) +#define APPEND_BUF_SIZE 10 +#define APPEND_BUF_SIZE_64 20 +#define HEAP_PANIC(r) Kern::Printf("HEAP CORRUPTED %s %d", __FILE__, __LINE__), RHeapK::Fault(r) +#define GET_PAGE_SIZE(x) x = M::PageSizeInBytes() +#define DIVISION_BY_ZERO() FAULT() + +#ifdef _DEBUG +#define __CHECK_THREAD_STATE RHeapK::CheckThreadState() +#else +#define __CHECK_THREAD_STATE +#endif + +#else + +#define STD_CLASS User +#define STRING_LENGTH(s) User::StringLength(s) +#define STRING_LENGTH_16(s) User::StringLength(s) +#define PANIC_CURRENT_THREAD(c,r) User::Panic(c, r) +#define MEM_COMPARE_16 Mem::Compare +#define __KERNEL_CHECK_RADIX(r) +#define APPEND_BUF_SIZE 32 +#define APPEND_BUF_SIZE_64 64 +#define HEAP_PANIC(r) RDebug::Printf("HEAP CORRUPTED %s %d", __FILE__, __LINE__), Panic(r) +#define GET_PAGE_SIZE(x) UserHal::PageSizeInBytes(x) +#define DIVISION_BY_ZERO() User::RaiseException(EExcIntegerDivideByZero) +#define __CHECK_THREAD_STATE + +#endif // __KERNEL_MODE__ + +#endif diff --git a/src/corelib/arch/symbian/debugfunction.cpp b/src/corelib/arch/symbian/debugfunction.cpp new file mode 100644 index 0000000..62adde0 --- /dev/null +++ b/src/corelib/arch/symbian/debugfunction.cpp @@ -0,0 +1,1147 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qt_hybridheap_symbian.h" + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +#define GM (&iGlobalMallocState) +#define __HEAP_CORRUPTED_TRACE(t,p,l) BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)t, (TUint32)p, (TUint32)l); +#define __HEAP_CORRUPTED_TEST(c,x, p,l) if (!c) { if (iFlags & (EMonitorMemory+ETraceAllocs) ) __HEAP_CORRUPTED_TRACE(this,p,l) HEAP_PANIC(x); } +#define __HEAP_CORRUPTED_TEST_STATIC(c,t,x,p,l) if (!c) { if (t && (t->iFlags & (EMonitorMemory+ETraceAllocs) )) __HEAP_CORRUPTED_TRACE(t,p,l) HEAP_PANIC(x); } + +TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) +{ + TInt r = KErrNone; + switch(aFunc) + { + + case RAllocator::ECount: + struct HeapInfo info; + Lock(); + GetInfo(&info, NULL); + *(unsigned*)a1 = info.iFreeN; + r = info.iAllocN; + Unlock(); + break; + + case RAllocator::EMarkStart: + __DEBUG_ONLY(DoMarkStart()); + break; + + case RAllocator::EMarkEnd: + __DEBUG_ONLY( r = DoMarkEnd((TInt)a1) ); + break; + + case RAllocator::ECheck: + r = DoCheckHeap((SCheckInfo*)a1); + break; + + case RAllocator::ESetFail: + __DEBUG_ONLY(DoSetAllocFail((TAllocFail)(TInt)a1, (TInt)a2)); + break; + +#ifdef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED + case RAllocator::EGetFail: + __DEBUG_ONLY(r = iFailType); + break; +#endif // SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED + + case RAllocator::ESetBurstFail: +#if _DEBUG + { + SRAllocatorBurstFail* fail = (SRAllocatorBurstFail*) a2; + DoSetAllocFail((TAllocFail)(TInt)a1, fail->iRate, fail->iBurst); + } +#endif + break; + + case RAllocator::ECheckFailure: + // iRand will be incremented for each EFailNext, EBurstFailNext, + // EDeterministic and EBurstDeterministic failure. + r = iRand; + break; + + case RAllocator::ECopyDebugInfo: + { + TInt nestingLevel = ((SDebugCell*)a1)[-1].nestingLevel; + ((SDebugCell*)a2)[-1].nestingLevel = nestingLevel; + break; + } + +#ifdef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED + case RAllocator::EGetSize: + { + r = iChunkSize - sizeof(RHybridHeap); + break; + } + + case RAllocator::EGetMaxLength: + { + r = iMaxLength; + break; + } + + case RAllocator::EGetBase: + { + *(TAny**)a1 = iBase; + break; + } + + case RAllocator::EAlignInteger: + { + r = _ALIGN_UP((TInt)a1, iAlign); + break; + } + + case RAllocator::EAlignAddr: + { + *(TAny**)a2 = (TAny*)_ALIGN_UP((TLinAddr)a1, iAlign); + break; + } + + case RHybridHeap::EWalk: + struct HeapInfo hinfo; + SWalkInfo winfo; + Lock(); + winfo.iFunction = (TWalkFunc)a1; + winfo.iParam = a2; + winfo.iHeap = (RHybridHeap*)this; + GetInfo(&hinfo, &winfo); + Unlock(); + break; + +#ifndef __KERNEL_MODE__ + + case RHybridHeap::EHybridHeap: + { + if ( !a1 ) + return KErrGeneral; + STestCommand* cmd = (STestCommand*)a1; + switch ( cmd->iCommand ) + { + case EGetConfig: + cmd->iConfig.iSlabBits = iSlabConfigBits; + cmd->iConfig.iDelayedSlabThreshold = iPageThreshold; + cmd->iConfig.iPagePower = iPageThreshold; + break; + + case ESetConfig: + // + // New configuration data for slab and page allocator. + // Reset heap to get data into use + // +#if USE_HYBRID_HEAP + iSlabConfigBits = cmd->iConfig.iSlabBits & 0x3fff; + iSlabInitThreshold = cmd->iConfig.iDelayedSlabThreshold; + iPageThreshold = (cmd->iConfig.iPagePower & 0x1f); + Reset(); +#endif + break; + + case EHeapMetaData: + cmd->iData = this; + break; + + case ETestData: + iTestData = cmd->iData; + break; + + default: + return KErrNotSupported; + + } + + break; + } +#endif // __KERNEL_MODE +#endif // SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED + + default: + return KErrNotSupported; + + } + return r; +} + +void RHybridHeap::Walk(SWalkInfo* aInfo, TAny* aBfr, TInt aLth, TCellType aBfrType, TAllocatorType aAllocatorType) +{ + // + // This function is always called from RHybridHeap::GetInfo. + // Actual walk function is called if SWalkInfo pointer is defined + // + // + if ( aInfo ) + { +#ifdef __KERNEL_MODE__ + (void)aAllocatorType; +#if defined(_DEBUG) + if ( aBfrType == EGoodAllocatedCell ) + aInfo->iFunction(aInfo->iParam, aBfrType, ((TUint8*)aBfr+EDebugHdrSize), (aLth-EDebugHdrSize) ); + else + aInfo->iFunction(aInfo->iParam, aBfrType, aBfr, aLth ); +#else + aInfo->iFunction(aInfo->iParam, aBfrType, aBfr, aLth ); +#endif + +#else // __KERNEL_MODE__ + + if ( aAllocatorType & (EFullSlab + EPartialFullSlab + EEmptySlab + ESlabSpare) ) + { + if ( aInfo->iHeap ) + { + TUint32 dummy; + TInt npages; + aInfo->iHeap->DoCheckSlab((slab*)aBfr, aAllocatorType); + __HEAP_CORRUPTED_TEST_STATIC(aInfo->iHeap->CheckBitmap(Floor(aBfr, PAGESIZE), PAGESIZE, dummy, npages), + aInfo->iHeap, ETHeapBadCellAddress, aBfr, aLth); + } + if ( aAllocatorType & EPartialFullSlab ) + WalkPartialFullSlab(aInfo, (slab*)aBfr, aBfrType, aLth); + else if ( aAllocatorType & EFullSlab ) + WalkFullSlab(aInfo, (slab*)aBfr, aBfrType, aLth); + } +#if defined(_DEBUG) + else if ( aBfrType == EGoodAllocatedCell ) + aInfo->iFunction(aInfo->iParam, aBfrType, ((TUint8*)aBfr+EDebugHdrSize), (aLth-EDebugHdrSize) ); + else + aInfo->iFunction(aInfo->iParam, aBfrType, aBfr, aLth ); +#else + else + aInfo->iFunction(aInfo->iParam, aBfrType, aBfr, aLth ); +#endif + +#endif // __KERNEL_MODE + } +} + +#ifndef __KERNEL_MODE__ +void RHybridHeap::WalkPartialFullSlab(SWalkInfo* aInfo, slab* aSlab, TCellType /*aBfrType*/, TInt /*aLth*/) +{ + if ( aInfo ) + { + // + // Build bitmap of free buffers in the partial full slab + // + TUint32 bitmap[4]; + __HEAP_CORRUPTED_TEST_STATIC( (aInfo->iHeap != NULL), aInfo->iHeap, ETHeapBadCellAddress, 0, aSlab); + aInfo->iHeap->BuildPartialSlabBitmap(bitmap, aSlab); + // + // Find used (allocated) buffers from iPartial full slab + // + TUint32 h = aSlab->iHeader; + TUint32 size = SlabHeaderSize(h); + TUint32 count = KMaxSlabPayload / size; // Total buffer count in slab + TUint32 i = 0; + TUint32 ix = 0; + TUint32 bit = 1; + + while ( i < count ) + { + + if ( bitmap[ix] & bit ) + { + aInfo->iFunction(aInfo->iParam, EGoodFreeCell, &aSlab->iPayload[i*size], size ); + } + else + { +#if defined(_DEBUG) + aInfo->iFunction(aInfo->iParam, EGoodAllocatedCell, (&aSlab->iPayload[i*size]+EDebugHdrSize), (size-EDebugHdrSize) ); +#else + aInfo->iFunction(aInfo->iParam, EGoodAllocatedCell, &aSlab->iPayload[i*size], size ); +#endif + } + bit <<= 1; + if ( bit == 0 ) + { + bit = 1; + ix ++; + } + + i ++; + } + } + +} + +void RHybridHeap::WalkFullSlab(SWalkInfo* aInfo, slab* aSlab, TCellType aBfrType, TInt /*aLth*/) +{ + if ( aInfo ) + { + TUint32 h = aSlab->iHeader; + TUint32 size = SlabHeaderSize(h); + TUint32 count = (SlabHeaderUsedm4(h) + 4) / size; + TUint32 i = 0; + while ( i < count ) + { +#if defined(_DEBUG) + if ( aBfrType == EGoodAllocatedCell ) + aInfo->iFunction(aInfo->iParam, aBfrType, (&aSlab->iPayload[i*size]+EDebugHdrSize), (size-EDebugHdrSize) ); + else + aInfo->iFunction(aInfo->iParam, aBfrType, &aSlab->iPayload[i*size], size ); +#else + aInfo->iFunction(aInfo->iParam, aBfrType, &aSlab->iPayload[i*size], size ); +#endif + i ++; + } + } +} + +void RHybridHeap::BuildPartialSlabBitmap(TUint32* aBitmap, slab* aSlab, TAny* aBfr) +{ + // + // Build a bitmap of free buffers in a partial full slab + // + TInt i; + TUint32 bit = 0; + TUint32 index; + TUint32 h = aSlab->iHeader; + TUint32 used = SlabHeaderUsedm4(h)+4; + TUint32 size = SlabHeaderSize(h); + TInt count = (KMaxSlabPayload / size); + TInt free_count = count - (used / size); // Total free buffer count in slab + aBitmap[0] = 0, aBitmap[1] = 0, aBitmap[2] = 0, aBitmap[3] = 0; + TUint32 offs = (h & 0xff) << 2; + + // + // Process first buffer in partial slab free buffer chain + // + while ( offs ) + { + unsigned char* p = (unsigned char*)Offset(aSlab, offs); + __HEAP_CORRUPTED_TEST( (sizeof(slabhdr) <= offs), ETHeapBadCellAddress, p, aSlab); + offs -= sizeof(slabhdr); + __HEAP_CORRUPTED_TEST( (offs % size == 0), ETHeapBadCellAddress, p, aSlab); + index = (offs / size); // Bit index in bitmap + i = 0; + while ( i < 4 ) + { + if ( index < 32 ) + { + bit = (1 << index); + break; + } + index -= 32; + i ++; + } + + __HEAP_CORRUPTED_TEST( ((aBitmap[i] & bit) == 0), ETHeapBadCellAddress, p, aSlab); // Buffer already in chain + + aBitmap[i] |= bit; + free_count --; + offs = ((unsigned)*p) << 2; // Next in free chain + } + + __HEAP_CORRUPTED_TEST( (free_count >= 0), ETHeapBadCellAddress, aBfr, aSlab); // free buffer count/size mismatch + // + // Process next rest of the free buffers which are in the + // wilderness (at end of the slab) + // + index = count - 1; + i = index / 32; + index = index % 32; + while ( free_count && (i >= 0)) + { + bit = (1 << index); + __HEAP_CORRUPTED_TEST( ((aBitmap[i] & bit) == 0), ETHeapBadCellAddress, aBfr, aSlab); // Buffer already in chain + aBitmap[i] |= bit; + if ( index ) + index --; + else + { + index = 31; + i --; + } + free_count --; + } + + if ( aBfr ) // Assure that specified buffer does NOT exist in partial slab free buffer chain + { + offs = LowBits(aBfr, SLABSIZE); + __HEAP_CORRUPTED_TEST( (sizeof(slabhdr) <= offs), ETHeapBadCellAddress, aBfr, aSlab); + offs -= sizeof(slabhdr); + __HEAP_CORRUPTED_TEST( ((offs % size) == 0), ETHeapBadCellAddress, aBfr, aSlab); + index = (offs / size); // Bit index in bitmap + i = 0; + while ( i < 4 ) + { + if ( index < 32 ) + { + bit = (1 << index); + break; + } + index -= 32; + i ++; + } + __HEAP_CORRUPTED_TEST( ((aBitmap[i] & bit) == 0), ETHeapBadCellAddress, aBfr, aSlab); // Buffer already in chain + } +} + +#endif // __KERNEL_MODE__ + +void RHybridHeap::WalkCheckCell(TAny* aPtr, TCellType aType, TAny* aCell, TInt aLen) +{ + (void)aCell; + SHeapCellInfo& info = *(SHeapCellInfo*)aPtr; + switch(aType) + { + case EGoodAllocatedCell: + { + ++info.iTotalAlloc; + info.iTotalAllocSize += aLen; +#if defined(_DEBUG) + RHybridHeap& h = *info.iHeap; + SDebugCell* DbgCell = (SDebugCell*)((TUint8*)aCell-EDebugHdrSize); + if ( DbgCell->nestingLevel == h.iNestingLevel ) + { + if (++info.iLevelAlloc==1) + info.iStranded = DbgCell; +#ifdef __KERNEL_MODE__ + if (KDebugNum(KSERVER) || KDebugNum(KTESTFAST)) + { + Kern::Printf("LEAKED KERNEL HEAP CELL @ %08x : len=%d", aCell, aLen); + TLinAddr base = ((TLinAddr)aCell)&~0x0f; + TLinAddr end = ((TLinAddr)aCell)+(TLinAddr)aLen; + while(baseiCount; + TInt actual = aInfo->iAll ? info.iTotalAlloc : info.iLevelAlloc; + if (actual!=expected && !iTestData) + { +#ifdef __KERNEL_MODE__ + Kern::Fault("KERN-ALLOC COUNT", (expected<<16)|actual ); +#else + User::Panic(_L("ALLOC COUNT"), (expected<<16)|actual ); +#endif + } +#endif + return KErrNone; +} + +#ifdef _DEBUG +void RHybridHeap::DoMarkStart() +{ + if (iNestingLevel==0) + iAllocCount=0; + iNestingLevel++; +} + +TUint32 RHybridHeap::DoMarkEnd(TInt aExpected) +{ + if (iNestingLevel==0) + return 0; + SHeapCellInfo info; + SHeapCellInfo* p = iTestData ? (SHeapCellInfo*)iTestData : &info; + memclr(p, sizeof(info)); + p->iHeap = this; + struct HeapInfo hinfo; + SWalkInfo winfo; + Lock(); + winfo.iFunction = WalkCheckCell; + winfo.iParam = p; + winfo.iHeap = (RHybridHeap*)this; + GetInfo(&hinfo, &winfo); + Unlock(); + + if (p->iLevelAlloc != aExpected && !iTestData) + return (TUint32)(p->iStranded + 1); + if (--iNestingLevel == 0) + iAllocCount = 0; + return 0; +} + +void RHybridHeap::DoSetAllocFail(TAllocFail aType, TInt aRate) +{// Default to a burst mode of 1, as aType may be a burst type. + DoSetAllocFail(aType, aRate, 1); +} + +void ResetAllocCellLevels(TAny* aPtr, RHybridHeap::TCellType aType, TAny* aCell, TInt aLen) +{ + (void)aPtr; + (void)aLen; + + if (aType == RHybridHeap::EGoodAllocatedCell) + { + RHybridHeap::SDebugCell* DbgCell = (RHybridHeap::SDebugCell*)((TUint8*)aCell-RHeap::EDebugHdrSize); + DbgCell->nestingLevel = 0; + } +} + +// Don't change as the ETHeapBadDebugFailParameter check below and the API +// documentation rely on this being 16 for RHybridHeap. +LOCAL_D const TInt KBurstFailRateShift = 16; +LOCAL_D const TInt KBurstFailRateMask = (1 << KBurstFailRateShift) - 1; + +void RHybridHeap::DoSetAllocFail(TAllocFail aType, TInt aRate, TUint aBurst) +{ + if (aType==EReset) + { + // reset levels of all allocated cells to 0 + // this should prevent subsequent tests failing unnecessarily + iFailed = EFalse; // Reset for ECheckFailure relies on this. + struct HeapInfo hinfo; + SWalkInfo winfo; + Lock(); + winfo.iFunction = (TWalkFunc)&ResetAllocCellLevels; + winfo.iParam = NULL; + winfo.iHeap = (RHybridHeap*)this; + GetInfo(&hinfo, &winfo); + Unlock(); + // reset heap allocation mark as well + iNestingLevel=0; + iAllocCount=0; + aType=ENone; + } + + switch (aType) + { + case EBurstRandom: + case EBurstTrueRandom: + case EBurstDeterministic: + case EBurstFailNext: + // If the fail type is a burst type then iFailRate is split in 2: + // the 16 lsbs are the fail rate and the 16 msbs are the burst length. + if (TUint(aRate) > (TUint)KMaxTUint16 || aBurst > KMaxTUint16) + HEAP_PANIC(ETHeapBadDebugFailParameter); + + iFailed = EFalse; + iFailType = aType; + iFailRate = (aRate == 0) ? 1 : aRate; + iFailAllocCount = -iFailRate; + iFailRate = iFailRate | (aBurst << KBurstFailRateShift); + break; + + default: + iFailed = EFalse; + iFailType = aType; + iFailRate = (aRate == 0) ? 1 : aRate; // A rate of <1 is meaningless + iFailAllocCount = 0; + break; + } + + // Set up iRand for either: + // - random seed value, or + // - a count of the number of failures so far. + iRand = 0; +#ifndef __KERNEL_MODE__ + switch (iFailType) + { + case ETrueRandom: + case EBurstTrueRandom: + { + TTime time; + time.HomeTime(); + TInt64 seed = time.Int64(); + iRand = Math::Rand(seed); + break; + } + case ERandom: + case EBurstRandom: + { + TInt64 seed = 12345; + iRand = Math::Rand(seed); + break; + } + default: + break; + } +#endif +} + +TBool RHybridHeap::CheckForSimulatedAllocFail() +// +// Check to see if the user has requested simulated alloc failure, and if so possibly +// Return ETrue indicating a failure. +// +{ + // For burst mode failures iFailRate is shared + TUint16 rate = (TUint16)(iFailRate & KBurstFailRateMask); + TUint16 burst = (TUint16)(iFailRate >> KBurstFailRateShift); + TBool r = EFalse; + switch (iFailType) + { +#ifndef __KERNEL_MODE__ + case ERandom: + case ETrueRandom: + if (++iFailAllocCount>=iFailRate) + { + iFailAllocCount=0; + if (!iFailed) // haven't failed yet after iFailRate allocations so fail now + return(ETrue); + iFailed=EFalse; + } + else + { + if (!iFailed) + { + TInt64 seed=iRand; + iRand=Math::Rand(seed); + if (iRand%iFailRate==0) + { + iFailed=ETrue; + return(ETrue); + } + } + } + break; + + case EBurstRandom: + case EBurstTrueRandom: + if (++iFailAllocCount < 0) + { + // We haven't started failing yet so should we now? + TInt64 seed = iRand; + iRand = Math::Rand(seed); + if (iRand % rate == 0) + {// Fail now. Reset iFailAllocCount so we fail burst times + iFailAllocCount = 0; + r = ETrue; + } + } + else + { + if (iFailAllocCount < burst) + {// Keep failing for burst times + r = ETrue; + } + else + {// We've now failed burst times so start again. + iFailAllocCount = -(rate - 1); + } + } + break; +#endif + case EDeterministic: + if (++iFailAllocCount%iFailRate==0) + { + r=ETrue; + iRand++; // Keep count of how many times we have failed + } + break; + + case EBurstDeterministic: + // This will fail burst number of times, every rate attempts. + if (++iFailAllocCount >= 0) + { + if (iFailAllocCount == burst - 1) + {// This is the burst time we have failed so make it the last by + // reseting counts so we next fail after rate attempts. + iFailAllocCount = -rate; + } + r = ETrue; + iRand++; // Keep count of how many times we have failed + } + break; + + case EFailNext: + if ((++iFailAllocCount%iFailRate)==0) + { + iFailType=ENone; + r=ETrue; + iRand++; // Keep count of how many times we have failed + } + break; + + case EBurstFailNext: + if (++iFailAllocCount >= 0) + { + if (iFailAllocCount == burst - 1) + {// This is the burst time we have failed so make it the last. + iFailType = ENone; + } + r = ETrue; + iRand++; // Keep count of how many times we have failed + } + break; + + default: + break; + } + return r; +} + +#endif // DEBUG + +// +// Methods for Doug Lea allocator detailed check +// + +void RHybridHeap::DoCheckAnyChunk(mstate m, mchunkptr p) +{ + __HEAP_CORRUPTED_TEST(((IS_ALIGNED(CHUNK2MEM(p))) || (p->iHead == FENCEPOST_HEAD)), ETHeapBadCellAddress, p, 0); + (void)m; +} + +/* Check properties of iTop chunk */ +void RHybridHeap::DoCheckTopChunk(mstate m, mchunkptr p) +{ + msegmentptr sp = &m->iSeg; + size_t sz = CHUNKSIZE(p); + __HEAP_CORRUPTED_TEST((sp != 0), ETHeapBadCellAddress, p, 0); + __HEAP_CORRUPTED_TEST(((IS_ALIGNED(CHUNK2MEM(p))) || (p->iHead == FENCEPOST_HEAD)), ETHeapBadCellAddress, p,0); + __HEAP_CORRUPTED_TEST((sz == m->iTopSize), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((sz > 0), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((sz == ((sp->iBase + sp->iSize) - (TUint8*)p) - TOP_FOOT_SIZE), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((PINUSE(p)), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((!NEXT_PINUSE(p)), ETHeapBadCellAddress,p,0); +} + +/* Check properties of inuse chunks */ +void RHybridHeap::DoCheckInuseChunk(mstate m, mchunkptr p) +{ + DoCheckAnyChunk(m, p); + __HEAP_CORRUPTED_TEST((CINUSE(p)), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((NEXT_PINUSE(p)), ETHeapBadCellAddress,p,0); + /* If not PINUSE and not mmapped, previous chunk has OK offset */ + __HEAP_CORRUPTED_TEST((PINUSE(p) || NEXT_CHUNK(PREV_CHUNK(p)) == p), ETHeapBadCellAddress,p,0); +} + +/* Check properties of free chunks */ +void RHybridHeap::DoCheckFreeChunk(mstate m, mchunkptr p) +{ + size_t sz = p->iHead & ~(PINUSE_BIT|CINUSE_BIT); + mchunkptr next = CHUNK_PLUS_OFFSET(p, sz); + DoCheckAnyChunk(m, p); + __HEAP_CORRUPTED_TEST((!CINUSE(p)), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((!NEXT_PINUSE(p)), ETHeapBadCellAddress,p,0); + if (p != m->iDv && p != m->iTop) + { + if (sz >= MIN_CHUNK_SIZE) + { + __HEAP_CORRUPTED_TEST(((sz & CHUNK_ALIGN_MASK) == 0), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((IS_ALIGNED(CHUNK2MEM(p))), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((next->iPrevFoot == sz), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((PINUSE(p)), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST( (next == m->iTop || CINUSE(next)), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((p->iFd->iBk == p), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((p->iBk->iFd == p), ETHeapBadCellAddress,p,0); + } + else /* markers are always of size SIZE_T_SIZE */ + __HEAP_CORRUPTED_TEST((sz == SIZE_T_SIZE), ETHeapBadCellAddress,p,0); + } +} + +/* Check properties of malloced chunks at the point they are malloced */ +void RHybridHeap::DoCheckMallocedChunk(mstate m, void* mem, size_t s) +{ + if (mem != 0) + { + mchunkptr p = MEM2CHUNK(mem); + size_t sz = p->iHead & ~(PINUSE_BIT|CINUSE_BIT); + DoCheckInuseChunk(m, p); + __HEAP_CORRUPTED_TEST(((sz & CHUNK_ALIGN_MASK) == 0), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((sz >= MIN_CHUNK_SIZE), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((sz >= s), ETHeapBadCellAddress,p,0); + /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */ + __HEAP_CORRUPTED_TEST((sz < (s + MIN_CHUNK_SIZE)), ETHeapBadCellAddress,p,0); + } +} + +/* Check a tree and its subtrees. */ +void RHybridHeap::DoCheckTree(mstate m, tchunkptr t) +{ + tchunkptr head = 0; + tchunkptr u = t; + bindex_t tindex = t->iIndex; + size_t tsize = CHUNKSIZE(t); + bindex_t idx; + DoComputeTreeIndex(tsize, idx); + __HEAP_CORRUPTED_TEST((tindex == idx), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((tsize >= MIN_LARGE_SIZE), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((tsize >= MINSIZE_FOR_TREE_INDEX(idx)), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST(((idx == NTREEBINS-1) || (tsize < MINSIZE_FOR_TREE_INDEX((idx+1)))), ETHeapBadCellAddress,u,0); + + do + { /* traverse through chain of same-sized nodes */ + DoCheckAnyChunk(m, ((mchunkptr)u)); + __HEAP_CORRUPTED_TEST((u->iIndex == tindex), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((CHUNKSIZE(u) == tsize), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((!CINUSE(u)), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((!NEXT_PINUSE(u)), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((u->iFd->iBk == u), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((u->iBk->iFd == u), ETHeapBadCellAddress,u,0); + if (u->iParent == 0) + { + __HEAP_CORRUPTED_TEST((u->iChild[0] == 0), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((u->iChild[1] == 0), ETHeapBadCellAddress,u,0); + } + else + { + __HEAP_CORRUPTED_TEST((head == 0), ETHeapBadCellAddress,u,0); /* only one node on chain has iParent */ + head = u; + __HEAP_CORRUPTED_TEST((u->iParent != u), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST( (u->iParent->iChild[0] == u || + u->iParent->iChild[1] == u || + *((tbinptr*)(u->iParent)) == u), ETHeapBadCellAddress,u,0); + if (u->iChild[0] != 0) + { + __HEAP_CORRUPTED_TEST((u->iChild[0]->iParent == u), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((u->iChild[0] != u), ETHeapBadCellAddress,u,0); + DoCheckTree(m, u->iChild[0]); + } + if (u->iChild[1] != 0) + { + __HEAP_CORRUPTED_TEST((u->iChild[1]->iParent == u), ETHeapBadCellAddress,u,0); + __HEAP_CORRUPTED_TEST((u->iChild[1] != u), ETHeapBadCellAddress,u,0); + DoCheckTree(m, u->iChild[1]); + } + if (u->iChild[0] != 0 && u->iChild[1] != 0) + { + __HEAP_CORRUPTED_TEST((CHUNKSIZE(u->iChild[0]) < CHUNKSIZE(u->iChild[1])), ETHeapBadCellAddress,u,0); + } + } + u = u->iFd; + } + while (u != t); + __HEAP_CORRUPTED_TEST((head != 0), ETHeapBadCellAddress,u,0); +} + +/* Check all the chunks in a treebin. */ +void RHybridHeap::DoCheckTreebin(mstate m, bindex_t i) +{ + tbinptr* tb = TREEBIN_AT(m, i); + tchunkptr t = *tb; + int empty = (m->iTreeMap & (1U << i)) == 0; + if (t == 0) + __HEAP_CORRUPTED_TEST((empty), ETHeapBadCellAddress,t,0); + if (!empty) + DoCheckTree(m, t); +} + +/* Check all the chunks in a smallbin. */ +void RHybridHeap::DoCheckSmallbin(mstate m, bindex_t i) +{ + sbinptr b = SMALLBIN_AT(m, i); + mchunkptr p = b->iBk; + unsigned int empty = (m->iSmallMap & (1U << i)) == 0; + if (p == b) + __HEAP_CORRUPTED_TEST((empty), ETHeapBadCellAddress,p,0); + if (!empty) + { + for (; p != b; p = p->iBk) + { + size_t size = CHUNKSIZE(p); + mchunkptr q; + /* each chunk claims to be free */ + DoCheckFreeChunk(m, p); + /* chunk belongs in bin */ + __HEAP_CORRUPTED_TEST((SMALL_INDEX(size) == i), ETHeapBadCellAddress,p,0); + __HEAP_CORRUPTED_TEST((p->iBk == b || CHUNKSIZE(p->iBk) == CHUNKSIZE(p)), ETHeapBadCellAddress,p,0); + /* chunk is followed by an inuse chunk */ + q = NEXT_CHUNK(p); + if (q->iHead != FENCEPOST_HEAD) + DoCheckInuseChunk(m, q); + } + } +} + +/* Find x in a bin. Used in other check functions. */ +TInt RHybridHeap::BinFind(mstate m, mchunkptr x) +{ + size_t size = CHUNKSIZE(x); + if (IS_SMALL(size)) + { + bindex_t sidx = SMALL_INDEX(size); + sbinptr b = SMALLBIN_AT(m, sidx); + if (SMALLMAP_IS_MARKED(m, sidx)) + { + mchunkptr p = b; + do + { + if (p == x) + return 1; + } + while ((p = p->iFd) != b); + } + } + else + { + bindex_t tidx; + DoComputeTreeIndex(size, tidx); + if (TREEMAP_IS_MARKED(m, tidx)) + { + tchunkptr t = *TREEBIN_AT(m, tidx); + size_t sizebits = size << LEFTSHIFT_FOR_TREE_INDEX(tidx); + while (t != 0 && CHUNKSIZE(t) != size) + { + t = t->iChild[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + sizebits <<= 1; + } + if (t != 0) + { + tchunkptr u = t; + do + { + if (u == (tchunkptr)x) + return 1; + } + while ((u = u->iFd) != t); + } + } + } + return 0; +} + +/* Traverse each chunk and check it; return total */ +size_t RHybridHeap::TraverseAndCheck(mstate m) +{ + size_t sum = 0; + msegmentptr s = &m->iSeg; + sum += m->iTopSize + TOP_FOOT_SIZE; + mchunkptr q = ALIGN_AS_CHUNK(s->iBase); + mchunkptr lastq = 0; + __HEAP_CORRUPTED_TEST((PINUSE(q)), ETHeapBadCellAddress,q,0); + while (q != m->iTop && q->iHead != FENCEPOST_HEAD) + { + sum += CHUNKSIZE(q); + if (CINUSE(q)) + { + __HEAP_CORRUPTED_TEST((!BinFind(m, q)), ETHeapBadCellAddress,q,0); + DoCheckInuseChunk(m, q); + } + else + { + __HEAP_CORRUPTED_TEST((q == m->iDv || BinFind(m, q)), ETHeapBadCellAddress,q,0); + __HEAP_CORRUPTED_TEST((lastq == 0 || CINUSE(lastq)), ETHeapBadCellAddress,q,0); /* Not 2 consecutive free */ + DoCheckFreeChunk(m, q); + } + lastq = q; + q = NEXT_CHUNK(q); + } + return sum; +} + +/* Check all properties of malloc_state. */ +void RHybridHeap::DoCheckMallocState(mstate m) +{ + bindex_t i; +// size_t total; + /* check bins */ + for (i = 0; i < NSMALLBINS; ++i) + DoCheckSmallbin(m, i); + for (i = 0; i < NTREEBINS; ++i) + DoCheckTreebin(m, i); + + if (m->iDvSize != 0) + { /* check iDv chunk */ + DoCheckAnyChunk(m, m->iDv); + __HEAP_CORRUPTED_TEST((m->iDvSize == CHUNKSIZE(m->iDv)), ETHeapBadCellAddress,m->iDv,0); + __HEAP_CORRUPTED_TEST((m->iDvSize >= MIN_CHUNK_SIZE), ETHeapBadCellAddress,m->iDv,0); + __HEAP_CORRUPTED_TEST((BinFind(m, m->iDv) == 0), ETHeapBadCellAddress,m->iDv,0); + } + + if (m->iTop != 0) + { /* check iTop chunk */ + DoCheckTopChunk(m, m->iTop); + __HEAP_CORRUPTED_TEST((m->iTopSize == CHUNKSIZE(m->iTop)), ETHeapBadCellAddress,m->iTop,0); + __HEAP_CORRUPTED_TEST((m->iTopSize > 0), ETHeapBadCellAddress,m->iTop,0); + __HEAP_CORRUPTED_TEST((BinFind(m, m->iTop) == 0), ETHeapBadCellAddress,m->iTop,0); + } + +// total = + TraverseAndCheck(m); +} + +#ifndef __KERNEL_MODE__ +// +// Methods for Slab allocator detailed check +// +void RHybridHeap::DoCheckSlabTree(slab** aS, TBool aPartialPage) +{ + slab* s = *aS; + if (!s) + return; + + TUint size = SlabHeaderSize(s->iHeader); + slab** parent = aS; + slab** child2 = &s->iChild2; + + while ( s ) + { + __HEAP_CORRUPTED_TEST((s->iParent == parent), ETHeapBadCellAddress,s,SLABSIZE); + __HEAP_CORRUPTED_TEST((!s->iChild1 || s < s->iChild1), ETHeapBadCellAddress,s,SLABSIZE); + __HEAP_CORRUPTED_TEST((!s->iChild2 || s < s->iChild2), ETHeapBadCellAddress,s,SLABSIZE); + + if ( aPartialPage ) + { + if ( s->iChild1 ) + size = SlabHeaderSize(s->iChild1->iHeader); + } + else + { + __HEAP_CORRUPTED_TEST((SlabHeaderSize(s->iHeader) == size), ETHeapBadCellAddress,s,SLABSIZE); + } + parent = &s->iChild1; + s = s->iChild1; + + } + + parent = child2; + s = *child2; + + while ( s ) + { + __HEAP_CORRUPTED_TEST((s->iParent == parent), ETHeapBadCellAddress,s,SLABSIZE); + __HEAP_CORRUPTED_TEST((!s->iChild1 || s < s->iChild1), ETHeapBadCellAddress,s,SLABSIZE); + __HEAP_CORRUPTED_TEST((!s->iChild2 || s < s->iChild2), ETHeapBadCellAddress,s,SLABSIZE); + + if ( aPartialPage ) + { + if ( s->iChild2 ) + size = SlabHeaderSize(s->iChild2->iHeader); + } + else + { + __HEAP_CORRUPTED_TEST((SlabHeaderSize(s->iHeader) == size), ETHeapBadCellAddress,s,SLABSIZE); + } + parent = &s->iChild2; + s = s->iChild2; + + } + +} + +void RHybridHeap::DoCheckSlabTrees() +{ + for (TInt i = 0; i < (MAXSLABSIZE>>2); ++i) + DoCheckSlabTree(&iSlabAlloc[i].iPartial, EFalse); + DoCheckSlabTree(&iPartialPage, ETrue); +} + +void RHybridHeap::DoCheckSlab(slab* aSlab, TAllocatorType aSlabType, TAny* aBfr) +{ + if ( (aSlabType == ESlabSpare) || (aSlabType == EEmptySlab) ) + return; + + unsigned h = aSlab->iHeader; + __HEAP_CORRUPTED_TEST((ZEROBITS(h)), ETHeapBadCellAddress,aBfr,aSlab); + unsigned used = SlabHeaderUsedm4(h)+4; + unsigned size = SlabHeaderSize(h); + __HEAP_CORRUPTED_TEST( (used < SLABSIZE),ETHeapBadCellAddress, aBfr, aSlab); + __HEAP_CORRUPTED_TEST( ((size > 3 ) && (size < MAXSLABSIZE)), ETHeapBadCellAddress,aBfr,aSlab); + unsigned count = 0; + + switch ( aSlabType ) + { + case EFullSlab: + count = (KMaxSlabPayload / size ); + __HEAP_CORRUPTED_TEST((used == count*size), ETHeapBadCellAddress,aBfr,aSlab); + __HEAP_CORRUPTED_TEST((HeaderFloating(h)), ETHeapBadCellAddress,aBfr,aSlab); + break; + + case EPartialFullSlab: + __HEAP_CORRUPTED_TEST(((used % size)==0),ETHeapBadCellAddress,aBfr,aSlab); + __HEAP_CORRUPTED_TEST(((SlabHeaderFree(h) == 0) || (((SlabHeaderFree(h)<<2)-sizeof(slabhdr)) % SlabHeaderSize(h) == 0)), + ETHeapBadCellAddress,aBfr,aSlab); + break; + + default: + break; + + } +} + +// +// Check that committed size in heap equals number of pages in bitmap +// plus size of Doug Lea region +// +void RHybridHeap::DoCheckCommittedSize(TInt aNPages, mstate aM) +{ + TInt total_committed = (aNPages * iPageSize) + aM->iSeg.iSize + (iBase - (TUint8*)this); + __HEAP_CORRUPTED_TEST((total_committed == iChunkSize), ETHeapBadCellAddress,total_committed,iChunkSize); +} + +#endif // __KERNEL_MODE__ + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ diff --git a/src/corelib/arch/symbian/dla_p.h b/src/corelib/arch/symbian/dla_p.h index 9d31499..519a4a2 100644 --- a/src/corelib/arch/symbian/dla_p.h +++ b/src/corelib/arch/symbian/dla_p.h @@ -1,10 +1,10 @@ /**************************************************************************** ** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the Symbian application wrapper of the Qt Toolkit. +** This file is part of the QtCore module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -38,12 +38,12 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + #ifndef __DLA__ #define __DLA__ #define DEFAULT_TRIM_THRESHOLD ((size_t)4U * (size_t)1024U) -#define __SYMBIAN__ #define MSPACES 0 #define HAVE_MORECORE 1 #define MORECORE_CONTIGUOUS 1 @@ -54,7 +54,6 @@ #define USE_LOCKS 0 #define INSECURE 1 #define NO_MALLINFO 0 -#define HAVE_GETPAGESIZE #define LACKS_SYS_TYPES_H #ifndef LACKS_SYS_TYPES_H @@ -81,9 +80,9 @@ typedef unsigned int size_t; #endif /* ONLY_MSPACES */ #endif /* MSPACES */ -#ifndef MALLOC_ALIGNMENT - #define MALLOC_ALIGNMENT ((size_t)8U) -#endif /* MALLOC_ALIGNMENT */ +//#ifndef MALLOC_ALIGNMENT +// #define MALLOC_ALIGNMENT ((size_t)8U) +//#endif /* MALLOC_ALIGNMENT */ #ifndef FOOTERS #define FOOTERS 0 @@ -91,13 +90,10 @@ typedef unsigned int size_t; #ifndef ABORT // #define ABORT abort() - #define ABORT User::Invariant()// redefined so euser isn't dependant on oe +// #define ABORT User::Invariant()// redefined so euser isn't dependant on oe + #define ABORT HEAP_PANIC(ETHeapBadCellAddress) #endif /* ABORT */ -#ifndef ABORT_ON_ASSERT_FAILURE - #define ABORT_ON_ASSERT_FAILURE 1 -#endif /* ABORT_ON_ASSERT_FAILURE */ - #ifndef PROCEED_ON_ERROR #define PROCEED_ON_ERROR 0 #endif /* PROCEED_ON_ERROR */ @@ -163,7 +159,7 @@ typedef unsigned int size_t; #define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U) #else /* MORECORE_CANNOT_TRIM */ #define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T - #endif /* MORECORE_CANNOT_TRIM */ + #endif /* MORECORE_CANNOT_TRIM */ #endif /* DEFAULT_TRIM_THRESHOLD */ #ifndef DEFAULT_MMAP_THRESHOLD @@ -230,18 +226,17 @@ typedef unsigned int size_t; #else /* HAVE_USR_INCLUDE_MALLOC_H */ struct mallinfo { - MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ - MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ - MALLINFO_FIELD_TYPE smblks; /* always 0 */ - MALLINFO_FIELD_TYPE hblks; /* always 0 */ - MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ - MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ - MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ - MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ - MALLINFO_FIELD_TYPE fordblks; /* total free space */ - MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ - MALLINFO_FIELD_TYPE cellCount;/* Number of chunks allocated*/ - MALLINFO_FIELD_TYPE largestBlock; + MALLINFO_FIELD_TYPE iArena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE iOrdblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE iSmblks; /* always 0 */ + MALLINFO_FIELD_TYPE iHblks; /* always 0 */ + MALLINFO_FIELD_TYPE iHblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE iUsmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE iFsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE iUordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE iFordblks; /* total free space */ + MALLINFO_FIELD_TYPE iKeepcost; /* releasable (via malloc_trim) space */ + MALLINFO_FIELD_TYPE iCellCount;/* Number of chunks allocated*/ }; #endif /* HAVE_USR_INCLUDE_MALLOC_H */ @@ -251,7 +246,7 @@ struct mallinfo { typedef void* mspace; #endif /* MSPACES */ -#ifndef __SYMBIAN__ +#if 0 #include /* for printing in malloc_stats */ @@ -260,23 +255,17 @@ struct mallinfo { #endif /* LACKS_ERRNO_H */ #if FOOTERS - #include /* for magic initialization */ + #include /* for iMagic initialization */ #endif /* FOOTERS */ #ifndef LACKS_STDLIB_H #include /* for abort() */ #endif /* LACKS_STDLIB_H */ -#ifdef DEBUG - #if ABORT_ON_ASSERT_FAILURE - #define assert(x) if(!(x)) ABORT - #else /* ABORT_ON_ASSERT_FAILURE */ - #include - #endif /* ABORT_ON_ASSERT_FAILURE */ -#else /* DEBUG */ - #define assert(x) -#endif /* DEBUG */ - +#if !defined(ASSERT) +#define ASSERT(x) __ASSERT_DEBUG(x, HEAP_PANIC(ETHeapBadCellAddress)) +#endif + #ifndef LACKS_STRING_H #include /* for memset etc */ #endif /* LACKS_STRING_H */ @@ -302,7 +291,7 @@ struct mallinfo { extern void* sbrk(size_t); #else /* LACKS_UNISTD_H */ #if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) - extern void* sbrk(ptrdiff_t); + extern void* sbrk(ptrdiff_t); /*Amod sbrk is not defined in WIN32 need to check in symbian*/ #endif /* FreeBSD etc */ #endif /* LACKS_UNISTD_H */ @@ -310,45 +299,45 @@ struct mallinfo { #endif -#define assert(x) ASSERT(x) - +/*AMOD: For MALLOC_GETPAGESIZE*/ +#if 0 // replaced with GET_PAGE_SIZE() defined in heap.cpp #ifndef WIN32 - #ifndef malloc_getpagesize + #ifndef MALLOC_GETPAGESIZE #ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ #ifndef _SC_PAGE_SIZE #define _SC_PAGE_SIZE _SC_PAGESIZE #endif #endif #ifdef _SC_PAGE_SIZE - #define malloc_getpagesize sysconf(_SC_PAGE_SIZE) + #define MALLOC_GETPAGESIZE sysconf(_SC_PAGE_SIZE) #else #if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) extern size_t getpagesize(); - #define malloc_getpagesize getpagesize() + #define MALLOC_GETPAGESIZE getpagesize() #else #ifdef WIN32 /* use supplied emulation of getpagesize */ - #define malloc_getpagesize getpagesize() + #define MALLOC_GETPAGESIZE getpagesize() #else #ifndef LACKS_SYS_PARAM_H #include #endif #ifdef EXEC_PAGESIZE - #define malloc_getpagesize EXEC_PAGESIZE + #define MALLOC_GETPAGESIZE EXEC_PAGESIZE #else #ifdef NBPG #ifndef CLSIZE - #define malloc_getpagesize NBPG + #define MALLOC_GETPAGESIZE NBPG #else - #define malloc_getpagesize (NBPG * CLSIZE) + #define MALLOC_GETPAGESIZE (NBPG * CLSIZE) #endif #else #ifdef NBPC - #define malloc_getpagesize NBPC + #define MALLOC_GETPAGESIZE NBPC #else #ifdef PAGESIZE - #define malloc_getpagesize PAGESIZE + #define MALLOC_GETPAGESIZE PAGESIZE #else /* just guess */ - #define malloc_getpagesize ((size_t)4096U) + #define MALLOC_GETPAGESIZE ((size_t)4096U) #endif #endif #endif @@ -358,6 +347,8 @@ struct mallinfo { #endif #endif #endif +#endif +/*AMOD: For MALLOC_GETPAGESIZE*/ /* ------------------- size_t and alignment properties -------------------- */ @@ -379,14 +370,14 @@ struct mallinfo { #define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE) /* True if address a has acceptable alignment */ -//#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) -#define is_aligned(A) (((unsigned int)((A)) & (CHUNK_ALIGN_MASK)) == 0) +//#define IS_ALIGNED(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0) +#define IS_ALIGNED(A) (((unsigned int)((A)) & (CHUNK_ALIGN_MASK)) == 0) /* the number of bytes to offset an address to align it */ -#define align_offset(A)\ +#define ALIGN_OFFSET(A)\ ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\ ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK)) - + /* -------------------------- MMAP preliminaries ------------------------- */ /* @@ -415,7 +406,7 @@ struct mallinfo { #if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) #define MAP_ANONYMOUS MAP_ANON #endif /* MAP_ANON */ - #ifdef MAP_ANONYMOUS + #ifdef MAP_ANONYMOUS #define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS) #define CALL_MMAP(s) mmap(0, (s), MMAP_PROT, (int)MMAP_FLAGS, -1, 0) #else /* MAP_ANONYMOUS */ @@ -463,13 +454,13 @@ struct mallinfo { #if USE_LOCKS /* When locks are defined, there are up to two global locks: - * If HAVE_MORECORE, morecore_mutex protects sequences of calls to + * If HAVE_MORECORE, iMorecoreMutex protects sequences of calls to MORECORE. In many cases sys_alloc requires two calls, that should not be interleaved with calls by other threads. This does not protect against direct calls to MORECORE by other threads not using this lock, so there is still code to cope the best we can on interference. - * magic_init_mutex ensures that mparams.magic and other + * iMagicInitMutex ensures that mparams.iMagic and other unique mparams values are initialized only once. */ #ifndef WIN32 @@ -479,20 +470,20 @@ struct mallinfo { #define INITIAL_LOCK(l) pthread_mutex_init(l, NULL) #define ACQUIRE_LOCK(l) pthread_mutex_lock(l) #define RELEASE_LOCK(l) pthread_mutex_unlock(l) - + #if HAVE_MORECORE - //static MLOCK_T morecore_mutex = PTHREAD_MUTEX_INITIALIZER; + //static MLOCK_T iMorecoreMutex = PTHREAD_MUTEX_INITIALIZER; #endif /* HAVE_MORECORE */ - //static MLOCK_T magic_init_mutex = PTHREAD_MUTEX_INITIALIZER; + //static MLOCK_T iMagicInitMutex = PTHREAD_MUTEX_INITIALIZER; #else /* WIN32 */ #define MLOCK_T long #define INITIAL_LOCK(l) *(l)=0 #define ACQUIRE_LOCK(l) win32_acquire_lock(l) #define RELEASE_LOCK(l) win32_release_lock(l) #if HAVE_MORECORE - static MLOCK_T morecore_mutex; + static MLOCK_T iMorecoreMutex; #endif /* HAVE_MORECORE */ - static MLOCK_T magic_init_mutex; + static MLOCK_T iMagicInitMutex; #endif /* WIN32 */ #define USE_LOCK_BIT (2U) #else /* USE_LOCKS */ @@ -501,19 +492,19 @@ struct mallinfo { #endif /* USE_LOCKS */ #if USE_LOCKS && HAVE_MORECORE - #define ACQUIRE_MORECORE_LOCK(M) ACQUIRE_LOCK((M->morecore_mutex)/*&morecore_mutex*/); - #define RELEASE_MORECORE_LOCK(M) RELEASE_LOCK((M->morecore_mutex)/*&morecore_mutex*/); + #define ACQUIRE_MORECORE_LOCK(M) ACQUIRE_LOCK((M->iMorecoreMutex)/*&iMorecoreMutex*/); + #define RELEASE_MORECORE_LOCK(M) RELEASE_LOCK((M->iMorecoreMutex)/*&iMorecoreMutex*/); #else /* USE_LOCKS && HAVE_MORECORE */ #define ACQUIRE_MORECORE_LOCK(M) #define RELEASE_MORECORE_LOCK(M) #endif /* USE_LOCKS && HAVE_MORECORE */ #if USE_LOCKS - /*Currently not suporting this*/ - #define ACQUIRE_MAGIC_INIT_LOCK(M) ACQUIRE_LOCK(((M)->magic_init_mutex)); + /*Currently not suporting this*/ + #define ACQUIRE_MAGIC_INIT_LOCK(M) ACQUIRE_LOCK(((M)->iMagicInitMutex)); //AMOD: changed #define ACQUIRE_MAGIC_INIT_LOCK() //#define RELEASE_MAGIC_INIT_LOCK() - #define RELEASE_MAGIC_INIT_LOCK(M) RELEASE_LOCK(((M)->magic_init_mutex)); + #define RELEASE_MAGIC_INIT_LOCK(M) RELEASE_LOCK(((M)->iMagicInitMutex)); #else /* USE_LOCKS */ #define ACQUIRE_MAGIC_INIT_LOCK(M) #define RELEASE_MAGIC_INIT_LOCK(M) @@ -521,10 +512,10 @@ struct mallinfo { /*CHUNK representation*/ struct malloc_chunk { - size_t prev_foot; /* Size of previous chunk (if free). */ - size_t head; /* Size and inuse bits. */ - struct malloc_chunk* fd; /* double links -- used only if free. */ - struct malloc_chunk* bk; + size_t iPrevFoot; /* Size of previous chunk (if free). */ + size_t iHead; /* Size and inuse bits. */ + struct malloc_chunk* iFd; /* double links -- used only if free. */ + struct malloc_chunk* iBk; }; typedef struct malloc_chunk mchunk; @@ -538,11 +529,11 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ /* ------------------- Chunks sizes and alignments ----------------------- */ #define MCHUNK_SIZE (sizeof(mchunk)) -#if FOOTERS - #define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) -#else /* FOOTERS */ - #define CHUNK_OVERHEAD (SIZE_T_SIZE) -#endif /* FOOTERS */ +//#if FOOTERS +// #define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) +//#else /* FOOTERS */ +// #define CHUNK_OVERHEAD (SIZE_T_SIZE) +//#endif /* FOOTERS */ /* MMapped chunks need a second word of overhead ... */ #define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES) @@ -553,27 +544,27 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ #define MIN_CHUNK_SIZE ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) /* conversion from malloc headers to user pointers, and back */ -#define chunk2mem(p) ((void*)((TUint8*)(p) + TWO_SIZE_T_SIZES)) -#define mem2chunk(mem) ((mchunkptr)((TUint8*)(mem) - TWO_SIZE_T_SIZES)) +#define CHUNK2MEM(p) ((void*)((TUint8*)(p) + TWO_SIZE_T_SIZES)) +#define MEM2CHUNK(mem) ((mchunkptr)((TUint8*)(mem) - TWO_SIZE_T_SIZES)) /* chunk associated with aligned address A */ -#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A))) +#define ALIGN_AS_CHUNK(A) (mchunkptr)((A) + ALIGN_OFFSET(CHUNK2MEM(A))) /* Bounds on request (not chunk) sizes. */ #define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2) #define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE) /* pad request bytes into a usable size */ -#define pad_request(req) (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) +#define PAD_REQUEST(req) (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK) /* pad request, checking for minimum (but not maximum) */ -#define request2size(req) (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req)) +#define REQUEST2SIZE(req) (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : PAD_REQUEST(req)) -/* ------------------ Operations on head and foot fields ----------------- */ +/* ------------------ Operations on iHead and foot fields ----------------- */ /* - The head field of a chunk is or'ed with PINUSE_BIT when previous + The iHead field of a chunk is or'ed with PINUSE_BIT when previous adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in - use. If the chunk was obtained with mmap, the prev_foot field has + use. If the chunk was obtained with mmap, the iPrevFoot field has IS_MMAPPED_BIT set, otherwise holding the offset of the base of the mmapped region to the base of the chunk. */ @@ -584,58 +575,58 @@ typedef unsigned int flag_t; /* The type of various bit flag sets */ /* Head value for fenceposts */ #define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE) -/* extraction of fields from head words */ -#define cinuse(p) ((p)->head & CINUSE_BIT) -#define pinuse(p) ((p)->head & PINUSE_BIT) -#define chunksize(p) ((p)->head & ~(INUSE_BITS)) +/* extraction of fields from iHead words */ +#define CINUSE(p) ((p)->iHead & CINUSE_BIT) +#define PINUSE(p) ((p)->iHead & PINUSE_BIT) +#define CHUNKSIZE(p) ((p)->iHead & ~(INUSE_BITS)) -#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT) -#define clear_cinuse(p) ((p)->head &= ~CINUSE_BIT) +#define CLEAR_PINUSE(p) ((p)->iHead &= ~PINUSE_BIT) +#define CLEAR_CINUSE(p) ((p)->iHead &= ~CINUSE_BIT) /* Treat space at ptr +/- offset as a chunk */ -#define chunk_plus_offset(p, s) ((mchunkptr)(((TUint8*)(p)) + (s))) -#define chunk_minus_offset(p, s) ((mchunkptr)(((TUint8*)(p)) - (s))) +#define CHUNK_PLUS_OFFSET(p, s) ((mchunkptr)(((TUint8*)(p)) + (s))) +#define CHUNK_MINUS_OFFSET(p, s) ((mchunkptr)(((TUint8*)(p)) - (s))) /* Ptr to next or previous physical malloc_chunk. */ -#define next_chunk(p) ((mchunkptr)( ((TUint8*)(p)) + ((p)->head & ~INUSE_BITS))) -#define prev_chunk(p) ((mchunkptr)( ((TUint8*)(p)) - ((p)->prev_foot) )) +#define NEXT_CHUNK(p) ((mchunkptr)( ((TUint8*)(p)) + ((p)->iHead & ~INUSE_BITS))) +#define PREV_CHUNK(p) ((mchunkptr)( ((TUint8*)(p)) - ((p)->iPrevFoot) )) -/* extract next chunk's pinuse bit */ -#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT) +/* extract next chunk's PINUSE bit */ +#define NEXT_PINUSE(p) ((NEXT_CHUNK(p)->iHead) & PINUSE_BIT) /* Get/set size at footer */ -#define get_foot(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot) -#define set_foot(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot = (s)) +#define GET_FOOT(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->iPrevFoot) +#define SET_FOOT(p, s) (((mchunkptr)((TUint8*)(p) + (s)))->iPrevFoot = (s)) -/* Set size, pinuse bit, and foot */ -#define set_size_and_pinuse_of_free_chunk(p, s) ((p)->head = (s|PINUSE_BIT), set_foot(p, s)) +/* Set size, PINUSE bit, and foot */ +#define SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(p, s) ((p)->iHead = (s|PINUSE_BIT), SET_FOOT(p, s)) -/* Set size, pinuse bit, foot, and clear next pinuse */ -#define set_free_with_pinuse(p, s, n) (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s)) +/* Set size, PINUSE bit, foot, and clear next PINUSE */ +#define SET_FREE_WITH_PINUSE(p, s, n) (CLEAR_PINUSE(n), SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(p, s)) -#define is_mmapped(p) (!((p)->head & PINUSE_BIT) && ((p)->prev_foot & IS_MMAPPED_BIT)) +#define IS_MMAPPED(p) (!((p)->iHead & PINUSE_BIT) && ((p)->iPrevFoot & IS_MMAPPED_BIT)) /* Get the internal overhead associated with chunk p */ -#define overhead_for(p) (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) +#define OVERHEAD_FOR(p) (IS_MMAPPED(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD) /* Return true if malloced space is not necessarily cleared */ #if MMAP_CLEARS - #define calloc_must_clear(p) (!is_mmapped(p)) + #define CALLOC_MUST_CLEAR(p) (!IS_MMAPPED(p)) #else /* MMAP_CLEARS */ - #define calloc_must_clear(p) (1) + #define CALLOC_MUST_CLEAR(p) (1) #endif /* MMAP_CLEARS */ /* ---------------------- Overlaid data structures ----------------------- */ struct malloc_tree_chunk { /* The first four fields must be compatible with malloc_chunk */ - size_t prev_foot; - size_t head; - struct malloc_tree_chunk* fd; - struct malloc_tree_chunk* bk; - - struct malloc_tree_chunk* child[2]; - struct malloc_tree_chunk* parent; - bindex_t index; + size_t iPrevFoot; + size_t iHead; + struct malloc_tree_chunk* iFd; + struct malloc_tree_chunk* iBk; + + struct malloc_tree_chunk* iChild[2]; + struct malloc_tree_chunk* iParent; + bindex_t iIndex; }; typedef struct malloc_tree_chunk tchunk; @@ -643,25 +634,23 @@ typedef struct malloc_tree_chunk* tchunkptr; typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */ /* A little helper macro for trees */ -#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1]) +#define LEFTMOST_CHILD(t) ((t)->iChild[0] != 0? (t)->iChild[0] : (t)->iChild[1]) /*Segment structur*/ -struct malloc_segment { - TUint8* base; /* base address */ - size_t size; /* allocated size */ - struct malloc_segment* next; /* ptr to next segment */ - flag_t sflags; /* mmap and extern flag */ -}; +//struct malloc_segment { +// TUint8* iBase; /* base address */ +// size_t iSize; /* allocated size */ +//}; -#define is_mmapped_segment(S) ((S)->sflags & IS_MMAPPED_BIT) -#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT) +#define IS_MMAPPED_SEGMENT(S) ((S)->iSflags & IS_MMAPPED_BIT) +#define IS_EXTERN_SEGMENT(S) ((S)->iSflags & EXTERN_BIT) typedef struct malloc_segment msegment; typedef struct malloc_segment* msegmentptr; /*Malloc State data structur*/ -#define NSMALLBINS (32U) -#define NTREEBINS (32U) +//#define NSMALLBINS (32U) +//#define NTREEBINS (32U) #define SMALLBIN_SHIFT (3U) #define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT) #define TREEBIN_SHIFT (8U) @@ -669,29 +658,42 @@ typedef struct malloc_segment* msegmentptr; #define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE) #define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD) +/*struct malloc_state { + binmap_t iSmallMap; + binmap_t iTreeMap; + size_t iDvSize; + size_t iTopSize; + mchunkptr iDv; + mchunkptr iTop; + size_t iTrimCheck; + mchunkptr iSmallBins[(NSMALLBINS+1)*2]; + tbinptr iTreeBins[NTREEBINS]; + msegment iSeg; + };*/ +/* struct malloc_state { - binmap_t smallmap; - binmap_t treemap; - size_t dvsize; - size_t topsize; - TUint8* least_addr; - mchunkptr dv; - mchunkptr top; - size_t trim_check; - size_t magic; - mchunkptr smallbins[(NSMALLBINS+1)*2]; - tbinptr treebins[NTREEBINS]; - size_t footprint; - size_t max_footprint; - flag_t mflags; + binmap_t iSmallMap; + binmap_t iTreeMap; + size_t iDvSize; + size_t iTopSize; + TUint8* iLeastAddr; + mchunkptr iDv; + mchunkptr iTop; + size_t iTrimCheck; + size_t iMagic; + mchunkptr iSmallBins[(NSMALLBINS+1)*2]; + tbinptr iTreeBins[NTREEBINS]; + size_t iFootprint; + size_t iMaxFootprint; + flag_t iMflags; #if USE_LOCKS - MLOCK_T mutex; /* locate lock among fields that rarely change */ - MLOCK_T magic_init_mutex; - MLOCK_T morecore_mutex; -#endif /* USE_LOCKS */ - msegment seg; + MLOCK_T iMutex; + MLOCK_T iMagicInitMutex; + MLOCK_T iMorecoreMutex; +#endif + msegment iSeg; }; - +*/ typedef struct malloc_state* mstate; /* ------------- Global malloc_state and malloc_params ------------------- */ @@ -703,14 +705,14 @@ typedef struct malloc_state* mstate; */ struct malloc_params { - size_t magic; - size_t page_size; - size_t granularity; - size_t mmap_threshold; - size_t trim_threshold; - flag_t default_mflags; + size_t iMagic; + size_t iPageSize; + size_t iGranularity; + size_t iMmapThreshold; + size_t iTrimThreshold; + flag_t iDefaultMflags; #if USE_LOCKS - MLOCK_T magic_init_mutex; + MLOCK_T iMagicInitMutex; #endif /* USE_LOCKS */ }; @@ -718,46 +720,46 @@ struct malloc_params { /*AMOD: Need to check this as this will be the member of the class*/ //static struct malloc_state _gm_; -//#define gm (&_gm_) - -//#define is_global(M) ((M) == &_gm_) +//#define GM (&_gm_) + +//#define IS_GLOBAL(M) ((M) == &_gm_) /*AMOD: has changed*/ -#define is_global(M) ((M) == gm) -#define is_initialized(M) ((M)->top != 0) +#define IS_GLOBAL(M) ((M) == GM) +#define IS_INITIALIZED(M) ((M)->iTop != 0) /* -------------------------- system alloc setup ------------------------- */ -/* Operations on mflags */ +/* Operations on iMflags */ -#define use_lock(M) ((M)->mflags & USE_LOCK_BIT) -#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT) -#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT) +#define USE_LOCK(M) ((M)->iMflags & USE_LOCK_BIT) +#define ENABLE_LOCK(M) ((M)->iMflags |= USE_LOCK_BIT) +#define DISABLE_LOCK(M) ((M)->iMflags &= ~USE_LOCK_BIT) -#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT) -#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT) -#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT) +#define USE_MMAP(M) ((M)->iMflags & USE_MMAP_BIT) +#define ENABLE_MMAP(M) ((M)->iMflags |= USE_MMAP_BIT) +#define DISABLE_MMAP(M) ((M)->iMflags &= ~USE_MMAP_BIT) -#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT) -#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT) +#define USE_NONCONTIGUOUS(M) ((M)->iMflags & USE_NONCONTIGUOUS_BIT) +#define DISABLE_CONTIGUOUS(M) ((M)->iMflags |= USE_NONCONTIGUOUS_BIT) -#define set_lock(M,L) ((M)->mflags = (L)? ((M)->mflags | USE_LOCK_BIT) : ((M)->mflags & ~USE_LOCK_BIT)) +#define SET_LOCK(M,L) ((M)->iMflags = (L)? ((M)->iMflags | USE_LOCK_BIT) : ((M)->iMflags & ~USE_LOCK_BIT)) /* page-align a size */ -#define page_align(S) (((S) + (mparams.page_size)) & ~(mparams.page_size - SIZE_T_ONE)) +#define PAGE_ALIGN(S) (((S) + (mparams.iPageSize)) & ~(mparams.iPageSize - SIZE_T_ONE)) -/* granularity-align a size */ -#define granularity_align(S) (((S) + (mparams.granularity)) & ~(mparams.granularity - SIZE_T_ONE)) +/* iGranularity-align a size */ +#define GRANULARITY_ALIGN(S) (((S) + (mparams.iGranularity)) & ~(mparams.iGranularity - SIZE_T_ONE)) -#define is_page_aligned(S) (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0) -#define is_granularity_aligned(S) (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0) +#define IS_PAGE_ALIGNED(S) (((size_t)(S) & (mparams.iPageSize - SIZE_T_ONE)) == 0) +#define IS_GRANULARITY_ALIGNED(S) (((size_t)(S) & (mparams.iGranularity - SIZE_T_ONE)) == 0) /* True if segment S holds address A */ -#define segment_holds(S, A) ((TUint8*)(A) >= S->base && (TUint8*)(A) < S->base + S->size) +#define SEGMENT_HOLDS(S, A) ((TUint8*)(A) >= S->iBase && (TUint8*)(A) < S->iBase + S->iSize) #ifndef MORECORE_CANNOT_TRIM - #define should_trim(M,s) ((s) > (M)->trim_check) + #define SHOULD_TRIM(M,s) ((s) > (M)->iTrimCheck) #else /* MORECORE_CANNOT_TRIM */ - #define should_trim(M,s) (0) + #define SHOULD_TRIM(M,s) (0) #endif /* MORECORE_CANNOT_TRIM */ /* @@ -765,8 +767,9 @@ struct malloc_params { that may be needed to place segment records and fenceposts when new noncontiguous segments are added. */ -#define TOP_FOOT_SIZE (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) +#define TOP_FOOT_SIZE (ALIGN_OFFSET(CHUNK2MEM(0))+PAD_REQUEST(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE) +#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT) /* ------------------------------- Hooks -------------------------------- */ /* @@ -777,9 +780,9 @@ struct malloc_params { #if USE_LOCKS /* Ensure locks are initialized */ - #define GLOBALLY_INITIALIZE() (mparams.page_size == 0 && init_mparams()) - #define PREACTION(M) (use_lock((M))?(ACQUIRE_LOCK((M)->mutex),0):0) /*Action to take like lock before alloc*/ - #define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK((M)->mutex); } + #define GLOBALLY_INITIALIZE() (mparams.iPageSize == 0 && init_mparams()) + #define PREACTION(M) (USE_LOCK((M))?(ACQUIRE_LOCK((M)->iMutex),0):0) /*Action to take like lock before alloc*/ + #define POSTACTION(M) { if (USE_LOCK(M)) RELEASE_LOCK((M)->iMutex); } #else /* USE_LOCKS */ #ifndef PREACTION @@ -802,8 +805,8 @@ struct malloc_params { /* A count of the number of corruption errors causing resets */ int malloc_corruption_error_count; /* default corruption action */ - static void reset_on_error(mstate m); - #define CORRUPTION_ERROR_ACTION(m) reset_on_error(m) + static void ResetOnError(mstate m); + #define CORRUPTION_ERROR_ACTION(m) ResetOnError(m) #define USAGE_ERROR_ACTION(m, p) #else /* PROCEED_ON_ERROR */ #ifndef CORRUPTION_ERROR_ACTION @@ -814,108 +817,86 @@ struct malloc_params { #endif /* USAGE_ERROR_ACTION */ #endif /* PROCEED_ON_ERROR */ - /* -------------------------- Debugging setup ---------------------------- */ -#if ! DEBUG - #define check_free_chunk(M,P) - #define check_inuse_chunk(M,P) - #define check_malloced_chunk(M,P,N) - #define check_mmapped_chunk(M,P) - #define check_malloc_state(M) - #define check_top_chunk(M,P) +#ifdef _DEBUG + #define CHECK_FREE_CHUNK(M,P) DoCheckFreeChunk(M,P) + #define CHECK_INUSE_CHUNK(M,P) DoCheckInuseChunk(M,P) + #define CHECK_TOP_CHUNK(M,P) DoCheckTopChunk(M,P) + #define CHECK_MALLOCED_CHUNK(M,P,N) DoCheckMallocedChunk(M,P,N) + #define CHECK_MMAPPED_CHUNK(M,P) DoCheckMmappedChunk(M,P) + #define CHECK_MALLOC_STATE(M) DoCheckMallocState(M) #else /* DEBUG */ - #define check_free_chunk(M,P) do_check_free_chunk(M,P) - #define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P) - #define check_top_chunk(M,P) do_check_top_chunk(M,P) - #define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N) - #define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P) - #define check_malloc_state(M) do_check_malloc_state(M) - static void do_check_any_chunk(mstate m, mchunkptr p); - static void do_check_top_chunk(mstate m, mchunkptr p); - static void do_check_mmapped_chunk(mstate m, mchunkptr p); - static void do_check_inuse_chunk(mstate m, mchunkptr p); - static void do_check_free_chunk(mstate m, mchunkptr p); - static void do_check_malloced_chunk(mstate m, void* mem, size_t s); - static void do_check_tree(mstate m, tchunkptr t); - static void do_check_treebin(mstate m, bindex_t i); - static void do_check_smallbin(mstate m, bindex_t i); - static void do_check_malloc_state(mstate m); - static int bin_find(mstate m, mchunkptr x); - static size_t traverse_and_check(mstate m); + #define CHECK_FREE_CHUNK(M,P) + #define CHECK_INUSE_CHUNK(M,P) + #define CHECK_MALLOCED_CHUNK(M,P,N) + #define CHECK_MMAPPED_CHUNK(M,P) + #define CHECK_MALLOC_STATE(M) + #define CHECK_TOP_CHUNK(M,P) #endif /* DEBUG */ /* ---------------------------- Indexing Bins ---------------------------- */ -#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) -#define small_index(s) ((s) >> SMALLBIN_SHIFT) -#define small_index2size(i) ((i) << SMALLBIN_SHIFT) -#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE)) +#define IS_SMALL(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS) +#define SMALL_INDEX(s) ((s) >> SMALLBIN_SHIFT) +#define SMALL_INDEX2SIZE(i) ((i) << SMALLBIN_SHIFT) +#define MIN_SMALL_INDEX (SMALL_INDEX(MIN_CHUNK_SIZE)) /* addressing by index. See above about smallbin repositioning */ -#define smallbin_at(M, i) ((sbinptr)((TUint8*)&((M)->smallbins[(i)<<1]))) -#define treebin_at(M,i) (&((M)->treebins[i])) +#define SMALLBIN_AT(M, i) ((sbinptr)((TUint8*)&((M)->iSmallBins[(i)<<1]))) +#define TREEBIN_AT(M,i) (&((M)->iTreeBins[i])) /* Bit representing maximum resolved size in a treebin at i */ -#define bit_for_tree_index(i) (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) +#define BIT_FOR_TREE_INDEX(i) (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2) /* Shift placing maximum resolved bit in a treebin at i as sign bit */ -#define leftshift_for_tree_index(i) ((i == NTREEBINS-1)? 0 : ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) +#define LEFTSHIFT_FOR_TREE_INDEX(i) ((i == NTREEBINS-1)? 0 : ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2))) /* The size of the smallest chunk held in bin with index i */ -#define minsize_for_tree_index(i) ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) +#define MINSIZE_FOR_TREE_INDEX(i) ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1))) /* ------------------------ Operations on bin maps ----------------------- */ /* bit corresponding to given index */ -#define idx2bit(i) ((binmap_t)(1) << (i)) +#define IDX2BIT(i) ((binmap_t)(1) << (i)) /* Mark/Clear bits with given index */ -#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i)) -#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i)) -#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i)) -#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i)) -#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i)) -#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i)) - -/* isolate the least set bit of a bitmap */ -#define least_bit(x) ((x) & -(x)) - -/* mask with all bits to left of least bit of x on */ -#define left_bits(x) ((x<<1) | -(x<<1)) - -/* mask with all bits to left of or equal to least bit of x on */ -#define same_or_left_bits(x) ((x) | -(x)) +#define MARK_SMALLMAP(M,i) ((M)->iSmallMap |= IDX2BIT(i)) +#define CLEAR_SMALLMAP(M,i) ((M)->iSmallMap &= ~IDX2BIT(i)) +#define SMALLMAP_IS_MARKED(M,i) ((M)->iSmallMap & IDX2BIT(i)) +#define MARK_TREEMAP(M,i) ((M)->iTreeMap |= IDX2BIT(i)) +#define CLEAR_TREEMAP(M,i) ((M)->iTreeMap &= ~IDX2BIT(i)) +#define TREEMAP_IS_MARKED(M,i) ((M)->iTreeMap & IDX2BIT(i)) /* isolate the least set bit of a bitmap */ -#define least_bit(x) ((x) & -(x)) +#define LEAST_BIT(x) ((x) & -(x)) /* mask with all bits to left of least bit of x on */ -#define left_bits(x) ((x<<1) | -(x<<1)) +#define LEFT_BITS(x) ((x<<1) | -(x<<1)) /* mask with all bits to left of or equal to least bit of x on */ -#define same_or_left_bits(x) ((x) | -(x)) +#define SAME_OR_LEFT_BITS(x) ((x) | -(x)) #if !INSECURE /* Check if address a is at least as high as any from MORECORE or MMAP */ - #define ok_address(M, a) ((TUint8*)(a) >= (M)->least_addr) + #define OK_ADDRESS(M, a) ((TUint8*)(a) >= (M)->iLeastAddr) /* Check if address of next chunk n is higher than base chunk p */ - #define ok_next(p, n) ((TUint8*)(p) < (TUint8*)(n)) - /* Check if p has its cinuse bit on */ - #define ok_cinuse(p) cinuse(p) - /* Check if p has its pinuse bit on */ - #define ok_pinuse(p) pinuse(p) + #define OK_NEXT(p, n) ((TUint8*)(p) < (TUint8*)(n)) + /* Check if p has its CINUSE bit on */ + #define OK_CINUSE(p) CINUSE(p) + /* Check if p has its PINUSE bit on */ + #define OK_PINUSE(p) PINUSE(p) #else /* !INSECURE */ - #define ok_address(M, a) (1) - #define ok_next(b, n) (1) - #define ok_cinuse(p) (1) - #define ok_pinuse(p) (1) + #define OK_ADDRESS(M, a) (1) + #define OK_NEXT(b, n) (1) + #define OK_CINUSE(p) (1) + #define OK_PINUSE(p) (1) #endif /* !INSECURE */ #if (FOOTERS && !INSECURE) - /* Check if (alleged) mstate m has expected magic field */ - #define ok_magic(M) ((M)->magic == mparams.magic) + /* Check if (alleged) mstate m has expected iMagic field */ + #define OK_MAGIC(M) ((M)->iMagic == mparams.iMagic) #else /* (FOOTERS && !INSECURE) */ - #define ok_magic(M) (1) + #define OK_MAGIC(M) (1) #endif /* (FOOTERS && !INSECURE) */ /* In gcc, use __builtin_expect to minimize impact of checks */ @@ -931,135 +912,58 @@ struct malloc_params { #endif /* !INSECURE */ /* macros to set up inuse chunks with or without footers */ #if !FOOTERS - #define mark_inuse_foot(M,p,s) - /* Set cinuse bit and pinuse bit of next chunk */ - #define set_inuse(M,p,s) ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT) - /* Set cinuse and pinuse of this chunk and pinuse of next chunk */ - #define set_inuse_and_pinuse(M,p,s) ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT) - /* Set size, cinuse and pinuse bit of this chunk */ - #define set_size_and_pinuse_of_inuse_chunk(M, p, s) ((p)->head = (s|PINUSE_BIT|CINUSE_BIT)) + #define MARK_INUSE_FOOT(M,p,s) + /* Set CINUSE bit and PINUSE bit of next chunk */ + #define SET_INUSE(M,p,s) ((p)->iHead = (((p)->iHead & PINUSE_BIT)|s|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->iHead |= PINUSE_BIT) + /* Set CINUSE and PINUSE of this chunk and PINUSE of next chunk */ + #define SET_INUSE_AND_PINUSE(M,p,s) ((p)->iHead = (s|PINUSE_BIT|CINUSE_BIT),((mchunkptr)(((TUint8*)(p)) + (s)))->iHead |= PINUSE_BIT) + /* Set size, CINUSE and PINUSE bit of this chunk */ + #define SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(M, p, s) ((p)->iHead = (s|PINUSE_BIT|CINUSE_BIT)) #else /* FOOTERS */ /* Set foot of inuse chunk to be xor of mstate and seed */ - #define mark_inuse_foot(M,p,s) (((mchunkptr)((TUint8*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic)) - #define get_mstate_for(p) ((mstate)(((mchunkptr)((TUint8*)(p)+(chunksize(p))))->prev_foot ^ mparams.magic)) - #define set_inuse(M,p,s)\ - ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\ - (((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT), \ - mark_inuse_foot(M,p,s)) - #define set_inuse_and_pinuse(M,p,s)\ - ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ - (((mchunkptr)(((TUint8*)(p)) + (s)))->head |= PINUSE_BIT),\ - mark_inuse_foot(M,p,s)) - #define set_size_and_pinuse_of_inuse_chunk(M, p, s)\ - ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\ - mark_inuse_foot(M, p, s)) + #define MARK_INUSE_FOOT(M,p,s) (((mchunkptr)((TUint8*)(p) + (s)))->iPrevFoot = ((size_t)(M) ^ mparams.iMagic)) + #define GET_MSTATE_FOR(p) ((mstate)(((mchunkptr)((TUint8*)(p)+(CHUNKSIZE(p))))->iPrevFoot ^ mparams.iMagic)) + #define SET_INUSE(M,p,s)\ + ((p)->iHead = (((p)->iHead & PINUSE_BIT)|s|CINUSE_BIT),\ + (((mchunkptr)(((TUint8*)(p)) + (s)))->iHead |= PINUSE_BIT), \ + MARK_INUSE_FOOT(M,p,s)) + #define SET_INUSE_AND_PINUSE(M,p,s)\ + ((p)->iHead = (s|PINUSE_BIT|CINUSE_BIT),\ + (((mchunkptr)(((TUint8*)(p)) + (s)))->iHead |= PINUSE_BIT),\ + MARK_INUSE_FOOT(M,p,s)) + #define SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(M, p, s)\ + ((p)->iHead = (s|PINUSE_BIT|CINUSE_BIT),\ + MARK_INUSE_FOOT(M, p, s)) #endif /* !FOOTERS */ #if ONLY_MSPACES -#define internal_malloc(m, b) mspace_malloc(m, b) -#define internal_free(m, mem) mspace_free(m,mem); +#define INTERNAL_MALLOC(m, b) mspace_malloc(m, b) +#define INTERNAL_FREE(m, mem) mspace_free(m,mem); #else /* ONLY_MSPACES */ #if MSPACES - #define internal_malloc(m, b) (m == gm)? dlmalloc(b) : mspace_malloc(m, b) - #define internal_free(m, mem) if (m == gm) dlfree(mem); else mspace_free(m,mem); + #define INTERNAL_MALLOC(m, b) (m == GM)? dlmalloc(b) : mspace_malloc(m, b) + #define INTERNAL_FREE(m, mem) if (m == GM) dlfree(mem); else mspace_free(m,mem); #else /* MSPACES */ - #define internal_malloc(m, b) dlmalloc(b) - #define internal_free(m, mem) dlfree(mem) + #define INTERNAL_MALLOC(m, b) dlmalloc(b) + #define INTERNAL_FREE(m, mem) dlfree(mem) #endif /* MSPACES */ #endif /* ONLY_MSPACES */ -/******CODE TO SUPORT SLAB ALLOCATOR******/ - + #ifndef NDEBUG #define CHECKING 1 #endif - +// #define HYSTERESIS 4 + #define HYSTERESIS 1 + #define HYSTERESIS_BYTES (2*PAGESIZE) + #define HYSTERESIS_GROW (HYSTERESIS*PAGESIZE) + #if CHECKING - #ifndef ASSERT - #define ASSERT(x) {if (!(x)) abort();} - #endif #define CHECK(x) x #else - #ifndef ASSERT + #undef ASSERT #define ASSERT(x) (void)0 - #endif #define CHECK(x) (void)0 #endif - - class slab; - class slabhdr; - #define maxslabsize 56 - #define pageshift 12 - #define pagesize (1<>3) : ((unsigned) bits>>1)) - - #define lowbit(bits) (((unsigned) bits&3) ? 1 - ((unsigned)bits&1) : 3 - (((unsigned)bits>>2)&1)) - #define minpagepower pageshift+2 - #define cellalign 8 - class slabhdr - { - public: - unsigned header; - // made up of - // bits | 31 | 30..28 | 27..18 | 17..12 | 11..8 | 7..0 | - // +----------+--------+--------+--------+---------+----------+ - // field | floating | zero | used-4 | size | pagemap | free pos | - // - slab** parent; // reference to parent's pointer to this slab in tree - slab* child1; // 1st child in tree - slab* child2; // 2nd child in tree - }; - - inline unsigned header_floating(unsigned h) - {return (h&0x80000000);} - const unsigned maxuse = (slabsize - sizeof(slabhdr))>>2; - const unsigned firstpos = sizeof(slabhdr)>>2; - #define checktree(x) (void)0 - template inline T floor(const T addr, unsigned aln) - {return T((unsigned(addr))&~(aln-1));} - template inline T ceiling(T addr, unsigned aln) - {return T((unsigned(addr)+(aln-1))&~(aln-1));} - template inline unsigned lowbits(T addr, unsigned aln) - {return unsigned(addr)&(aln-1);} - template inline int ptrdiff(const T1* a1, const T2* a2) - {return reinterpret_cast(a1) - reinterpret_cast(a2);} - template inline T offset(T addr, signed ofs) - {return T(unsigned(addr)+ofs);} - class slabset - { - public: - slab* partial; - }; - - class slab : public slabhdr - { - public: - void init(unsigned clz); - //static slab* slabfor( void* p); - static slab* slabfor(const void* p) ; - private: - unsigned char payload[slabsize-sizeof(slabhdr)]; - }; - class page - { - public: - inline static page* pagefor(slab* s); - //slab slabs; - slab slabs[slabsperpage]; - }; - - - inline page* page::pagefor(slab* s) - {return reinterpret_cast(floor(s, pagesize));} - struct pagecell - { - void* page; - unsigned size; - }; - /******CODE TO SUPORT SLAB ALLOCATOR******/ + #endif/*__DLA__*/ diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp new file mode 100644 index 0000000..4b514b2 --- /dev/null +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -0,0 +1,3337 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qt_hybridheap_symbian.h" + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +// enables btrace code compiling into +#define ENABLE_BTRACE + +// if non zero this causes the iSlabs to be configured only when the chunk size exceeds this level +#define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data +#define SLAB_CONFIG 0xabe // Use slabs of size 48, 40, 32, 24, 20, 16, 12, and 8 bytes + +#ifdef _DEBUG +#define __SIMULATE_ALLOC_FAIL(s) if (CheckForSimulatedAllocFail()) {s} +#define __ALLOC_DEBUG_HEADER(s) (s += EDebugHdrSize) +#define __SET_DEBUG_DATA(p,n,c) (((SDebugCell*)(p))->nestingLevel = (n), ((SDebugCell*)(p))->allocCount = (c)) +#define __GET_USER_DATA_BFR(p) ((p!=0) ? (TUint8*)(p) + EDebugHdrSize : NULL) +#define __GET_DEBUG_DATA_BFR(p) ((p!=0) ? (TUint8*)(p) - EDebugHdrSize : NULL) +#define __ZAP_CELL(p) memset( (TUint8*)p, 0xde, (AllocLen(__GET_USER_DATA_BFR(p))+EDebugHdrSize)) +#define __DEBUG_SAVE(p) TInt dbgNestLevel = ((SDebugCell*)p)->nestingLevel +#define __DEBUG_RESTORE(p) if (p) {((SDebugCell*)p)->nestingLevel = dbgNestLevel;} +#define __DEBUG_HDR_SIZE EDebugHdrSize +#define __REMOVE_DBG_HDR(n) (n*EDebugHdrSize) +#define __GET_AVAIL_BLOCK_SIZE(s) ( (sallocCount = (c);} +#define __INIT_COUNTERS(i) iCellCount=i,iTotalAllocSize=i +#define __INCREMENT_COUNTERS(p) iCellCount++, iTotalAllocSize += AllocLen(p) +#define __DECREMENT_COUNTERS(p) iCellCount--, iTotalAllocSize -= AllocLen(p) +#define __UPDATE_TOTAL_ALLOC(p,s) iTotalAllocSize += (AllocLen(__GET_USER_DATA_BFR(p)) - s) + +#else +#define __SIMULATE_ALLOC_FAIL(s) +#define __ALLOC_DEBUG_HEADER(s) +#define __SET_DEBUG_DATA(p,n,c) +#define __GET_USER_DATA_BFR(p) (p) +#define __GET_DEBUG_DATA_BFR(p) (p) +#define __ZAP_CELL(p) +#define __DEBUG_SAVE(p) +#define __DEBUG_RESTORE(p) +#define __DEBUG_HDR_SIZE 0 +#define __REMOVE_DBG_HDR(n) 0 +#define __GET_AVAIL_BLOCK_SIZE(s) (s) +#define __UPDATE_ALLOC_COUNT(o,n,c) +#define __INIT_COUNTERS(i) iCellCount=i,iTotalAllocSize=i +#define __INCREMENT_COUNTERS(p) +#define __DECREMENT_COUNTERS(p) +#define __UPDATE_TOTAL_ALLOC(p,s) + +#endif + + +#define MEMORY_MONITORED (iFlags & EMonitorMemory) +#define GM (&iGlobalMallocState) +#define IS_FIXED_HEAP (iFlags & EFixedSize) +#define __INIT_COUNTERS(i) iCellCount=i,iTotalAllocSize=i +#define __POWER_OF_2(x) (!((x)&((x)-1))) + +#define __DL_BFR_CHECK(M,P) \ + if ( MEMORY_MONITORED ) \ + if ( !IS_ALIGNED(P) || ((TUint8*)(P)iSeg.iBase) || ((TUint8*)(P)>(M->iSeg.iBase+M->iSeg.iSize))) \ + BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)this, (TUint32)P, (TUint32)0), HEAP_PANIC(ETHeapBadCellAddress); \ + else DoCheckInuseChunk(M, MEM2CHUNK(P)) + +#ifndef __KERNEL_MODE__ + +#define __SLAB_BFR_CHECK(S,P,B) \ + if ( MEMORY_MONITORED ) \ + if ( ((TUint32)P & 0x3) || ((TUint8*)P(TUint8*)this)) \ + BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)this, (TUint32)P, (TUint32)S), HEAP_PANIC(ETHeapBadCellAddress); \ + else DoCheckSlab(S, EPartialFullSlab, P), BuildPartialSlabBitmap(B,S,P) +#define __PAGE_BFR_CHECK(P) \ + if ( MEMORY_MONITORED ) \ + if ( ((TUint32)P & ((1 << iPageSize)-1)) || ((TUint8*)P(TUint8*)this)) \ + BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)this, (TUint32)P, (TUint32)0), HEAP_PANIC(ETHeapBadCellAddress) + +#endif + +#ifdef _MSC_VER +// This is required while we are still using VC6 to compile, so as to avoid warnings that cannot be fixed +// without having to edit the original Doug Lea source. The 4146 warnings are due to the original code having +// a liking for negating unsigned numbers and the 4127 warnings are due to the original code using the RTCHECK +// macro with values that are always defined as 1. It is better to turn these warnings off than to introduce +// diffs between the original Doug Lea implementation and our adaptation of it +#pragma warning( disable : 4146 ) /* unary minus operator applied to unsigned type, result still unsigned */ +#pragma warning( disable : 4127 ) /* conditional expression is constant */ +#endif // _MSC_VER + + +/** +@SYMPatchable +@publishedPartner +@released + +Defines the minimum cell size of a heap. + +The constant can be changed at ROM build time using patchdata OBY keyword. + +@deprecated Patching this constant no longer has any effect. +*/ +#ifdef __X86GCC__ // For X86GCC we dont use the proper data import attribute +#undef IMPORT_D // since the constants are not really imported. GCC doesn't +#define IMPORT_D // allow imports from self. +#endif +IMPORT_D extern const TInt KHeapMinCellSize; + +/** +@SYMPatchable +@publishedPartner +@released + +This constant defines the ratio that determines the amount of hysteresis between heap growing and heap +shrinking. +It is a 32-bit fixed point number where the radix point is defined to be +between bits 7 and 8 (where the LSB is bit 0) i.e. using standard notation, a Q8 or a fx24.8 +fixed point number. For example, for a ratio of 2.0, set KHeapShrinkHysRatio=0x200. + +The heap shrinking hysteresis value is calculated to be: +@code +KHeapShrinkHysRatio*(iGrowBy>>8) +@endcode +where iGrowBy is a page aligned value set by the argument, aGrowBy, to the RHeap constructor. +The default hysteresis value is iGrowBy bytes i.e. KHeapShrinkHysRatio=2.0. + +Memory usage may be improved by reducing the heap shrinking hysteresis +by setting 1.0 < KHeapShrinkHysRatio < 2.0. Heap shrinking hysteresis is disabled/removed +when KHeapShrinkHysRatio <= 1.0. + +The constant can be changed at ROM build time using patchdata OBY keyword. +*/ +IMPORT_D extern const TInt KHeapShrinkHysRatio; + +UEXPORT_C TInt RHeap::AllocLen(const TAny* aCell) const +{ + const MAllocator* m = this; + return m->AllocLen(aCell); +} + +UEXPORT_C TAny* RHeap::Alloc(TInt aSize) +{ + const MAllocator* m = this; + return ((MAllocator*)m)->Alloc(aSize); +} + +UEXPORT_C void RHeap::Free(TAny* aCell) +{ + const MAllocator* m = this; + ((MAllocator*)m)->Free(aCell); +} + +UEXPORT_C TAny* RHeap::ReAlloc(TAny* aCell, TInt aSize, TInt aMode) +{ + const MAllocator* m = this; + return ((MAllocator*)m)->ReAlloc(aCell, aSize, aMode); +} + +UEXPORT_C TInt RHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) +{ + const MAllocator* m = this; + return ((MAllocator*)m)->DebugFunction(aFunc, a1, a2); +} + +UEXPORT_C TInt RHeap::Extension_(TUint aExtensionId, TAny*& a0, TAny* a1) +{ + const MAllocator* m = this; + return ((MAllocator*)m)->Extension_(aExtensionId, a0, a1); +} + +#ifndef __KERNEL_MODE__ + +EXPORT_C TInt RHeap::AllocSize(TInt& aTotalAllocSize) const +{ + const MAllocator* m = this; + return m->AllocSize(aTotalAllocSize); +} + +EXPORT_C TInt RHeap::Available(TInt& aBiggestBlock) const +{ + const MAllocator* m = this; + return m->Available(aBiggestBlock); +} + +EXPORT_C void RHeap::Reset() +{ + const MAllocator* m = this; + ((MAllocator*)m)->Reset(); +} + +EXPORT_C TInt RHeap::Compress() +{ + const MAllocator* m = this; + return ((MAllocator*)m)->Compress(); +} +#endif + +RHybridHeap::RHybridHeap() + { + // This initialisation cannot be done in RHeap() for compatibility reasons + iMaxLength = iChunkHandle = iNestingLevel = 0; + iTop = NULL; + iFailType = ENone; + iTestData = NULL; + } + +void RHybridHeap::operator delete(TAny*, TAny*) +/** +Called if constructor issued by operator new(TUint aSize, TAny* aBase) throws exception. +This is dummy as corresponding new operator does not allocate memory. +*/ +{} + + +#ifndef __KERNEL_MODE__ +void RHybridHeap::Lock() const + /** + @internalComponent +*/ + {((RFastLock&)iLock).Wait();} + + +void RHybridHeap::Unlock() const + /** + @internalComponent +*/ + {((RFastLock&)iLock).Signal();} + + +TInt RHybridHeap::ChunkHandle() const + /** + @internalComponent +*/ +{ + return iChunkHandle; +} + +#else +// +// This method is implemented in kheap.cpp +// +//void RHybridHeap::Lock() const + /** + @internalComponent +*/ +// {;} + + + +// +// This method is implemented in kheap.cpp +// +//void RHybridHeap::Unlock() const + /** + @internalComponent +*/ +// {;} + + +TInt RHybridHeap::ChunkHandle() const + /** + @internalComponent +*/ +{ + return 0; +} +#endif + +RHybridHeap::RHybridHeap(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread, TBool aDLOnly, TBool aUseAdjust) +/** +Constructor for a non fixed heap. Unlike the fixed heap, this heap is quite flexible in terms of its minimum and +maximum lengths and in that it can use the hybrid allocator if all of its requirements are met. +*/ + : iOffset(aOffset), iChunkSize(aMinLength) + { + __ASSERT_ALWAYS(iOffset>=0, HEAP_PANIC(ETHeapNewBadOffset)); + + iChunkHandle = aChunkHandle; + iMinLength = aMinLength; + iMaxLength = aMaxLength; + + // If the user has explicitly specified 0 as the aGrowBy value, set it to 1 so that it will be rounded up to the nearst page size + if (aGrowBy == 0) + aGrowBy = 1; + GET_PAGE_SIZE(iPageSize); + iGrowBy = _ALIGN_UP(aGrowBy, iPageSize); + + Construct(aSingleThread, aDLOnly, aUseAdjust, aAlign); + } + +RHybridHeap::RHybridHeap(TInt aMaxLength, TInt aAlign, TBool aSingleThread) +/** +Constructor for a fixed heap. We have restrictions in that we have fixed minimum and maximum lengths and cannot grow +and we only use DL allocator. +*/ + : iOffset(0), iChunkSize(aMaxLength) + { + iChunkHandle = NULL; + iMinLength = aMaxLength; + iMaxLength = aMaxLength; + iGrowBy = 0; + + Construct(aSingleThread, ETrue, ETrue, aAlign); + } + +TAny* RHybridHeap::operator new(TUint aSize, TAny* aBase) __NO_THROW +{ + __ASSERT_ALWAYS(aSize>=sizeof(RHybridHeap), HEAP_PANIC(ETHeapNewBadSize)); + RHybridHeap* h = (RHybridHeap*)aBase; + h->iBase = ((TUint8*)aBase) + aSize; + return aBase; +} + +void RHybridHeap::Construct(TBool aSingleThread, TBool aDLOnly, TBool aUseAdjust, TInt aAlign) +{ + iAlign = aAlign ? aAlign : RHybridHeap::ECellAlignment; + __ASSERT_ALWAYS((TUint32)iAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign), HEAP_PANIC(ETHeapNewBadAlignment)); + + // This initialisation cannot be done in RHeap() for compatibility reasons + iTop = NULL; + iFailType = ENone; + iNestingLevel = 0; + iTestData = NULL; + + iHighWaterMark = iMinLength; + iAllocCount = 0; + iFlags = aSingleThread ? ESingleThreaded : 0; + iGrowBy = _ALIGN_UP(iGrowBy, iPageSize); + + if ( iMinLength == iMaxLength ) + { + iFlags |= EFixedSize; + aDLOnly = ETrue; + } +#ifndef __KERNEL_MODE__ +#ifdef DELAYED_SLAB_THRESHOLD + iSlabInitThreshold = DELAYED_SLAB_THRESHOLD; +#else + iSlabInitThreshold = 0; +#endif // DELAYED_SLAB_THRESHOLD + iUseAdjust = aUseAdjust; + iDLOnly = aDLOnly; +#else + (void)aUseAdjust; +#endif + // Initialise suballocators + // if DL only is required then it cannot allocate slab or page memory + // so these sub-allocators should be disabled. Otherwise initialise with default values + if ( aDLOnly ) + { + Init(0, 0); + } + else + { + Init(SLAB_CONFIG, 16); + } + +#ifdef ENABLE_BTRACE + + TUint32 traceData[4]; + traceData[0] = iMinLength; + traceData[1] = iMaxLength; + traceData[2] = iGrowBy; + traceData[3] = iAlign; + BTraceContextN(BTrace::ETest1, 90, (TUint32)this, 11, traceData, sizeof(traceData)); +#endif + +} + +#ifndef __KERNEL_MODE__ +TInt RHybridHeap::ConstructLock(TUint32 aMode) +{ + TBool duplicateLock = EFalse; + TInt r = KErrNone; + if (!(iFlags & ESingleThreaded)) + { + duplicateLock = aMode & UserHeap::EChunkHeapSwitchTo; + r = iLock.CreateLocal(duplicateLock ? EOwnerThread : EOwnerProcess); + if( r != KErrNone) + { + iChunkHandle = 0; + return r; + } + } + + if ( aMode & UserHeap::EChunkHeapSwitchTo ) + User::SwitchHeap(this); + + iHandles = &iChunkHandle; + if (!(iFlags & ESingleThreaded)) + { + // now change the thread-relative chunk/semaphore handles into process-relative handles + iHandleCount = 2; + if(duplicateLock) + { + RHandleBase s = iLock; + r = iLock.Duplicate(RThread()); + s.Close(); + } + if (r==KErrNone && (aMode & UserHeap::EChunkHeapDuplicate)) + { + r = ((RChunk*)&iChunkHandle)->Duplicate(RThread()); + if (r!=KErrNone) + iLock.Close(), iChunkHandle=0; + } + } + else + { + iHandleCount = 1; + if (aMode & UserHeap::EChunkHeapDuplicate) + r = ((RChunk*)&iChunkHandle)->Duplicate(RThread(), EOwnerThread); + } + + return r; +} +#endif + +void RHybridHeap::Init(TInt aBitmapSlab, TInt aPagePower) +{ + /*Moved code which does initilization */ + iTop = (TUint8*)this + iMinLength; + iBase = Ceiling(iBase, ECellAlignment); // Align iBase address + + __INIT_COUNTERS(0); + // memset(&mparams,0,sizeof(mparams)); + + InitDlMalloc(iTop - iBase, 0); + +#ifndef __KERNEL_MODE__ + SlabInit(); + iSlabConfigBits = aBitmapSlab; + if ( iChunkSize > iSlabInitThreshold ) + { + iSlabInitThreshold = KMaxTInt32; + SlabConfig(aBitmapSlab); // Delayed slab configuration done + } + if ( aPagePower ) + { + RChunk chunk; + chunk.SetHandle(iChunkHandle); + iMemBase = chunk.Base(); // Store base address for paged allocator + } + + /*10-1K,11-2K,12-4k,13-8K,14-16K,15-32K,16-64K*/ + PagedInit(aPagePower); + +#ifdef ENABLE_BTRACE + TUint32 traceData[3]; + traceData[0] = aBitmapSlab; + traceData[1] = aPagePower; + traceData[2] = GM->iTrimCheck; + BTraceContextN(BTrace::ETest1, 90, (TUint32)this, 0, traceData, sizeof(traceData)); +#endif +#else + (void)aBitmapSlab; + (void)aPagePower; +#endif // __KERNEL_MODE__ + +} + + +TInt RHybridHeap::AllocLen(const TAny* aCell) const +{ + aCell = __GET_DEBUG_DATA_BFR(aCell); + + if (PtrDiff(aCell, this) >= 0) + { + mchunkptr m = MEM2CHUNK(aCell); + return CHUNKSIZE(m) - OVERHEAD_FOR(m) - __DEBUG_HDR_SIZE; + } +#ifndef __KERNEL_MODE__ + if ( aCell ) + { + if (LowBits(aCell, iPageSize) ) + return SlabHeaderSize(slab::SlabFor(aCell)->iHeader) - __DEBUG_HDR_SIZE; + + return PagedSize((void*)aCell) - __DEBUG_HDR_SIZE; + } +#endif + return 0; // NULL pointer situation, should PANIC !! +} + +#ifdef __KERNEL_MODE__ +TAny* RHybridHeap::Alloc(TInt aSize) +{ + __CHECK_THREAD_STATE; + __ASSERT_ALWAYS((TUint)aSize<(KMaxTInt/2),HEAP_PANIC(ETHeapBadAllocatedCellSize)); + __SIMULATE_ALLOC_FAIL(return NULL;) + Lock(); + __ALLOC_DEBUG_HEADER(aSize); + TAny* addr = DlMalloc(aSize); + if ( addr ) + { +// iCellCount++; + __SET_DEBUG_DATA(addr, iNestingLevel, ++iAllocCount); + addr = __GET_USER_DATA_BFR(addr); + __INCREMENT_COUNTERS(addr); + memclr(addr, AllocLen(addr)); + } + Unlock(); +#ifdef ENABLE_BTRACE + if (iFlags & ETraceAllocs) + { + if ( addr ) + { + TUint32 traceData[3]; + traceData[0] = AllocLen(addr); + traceData[1] = aSize - __DEBUG_HDR_SIZE; + traceData[2] = 0; + BTraceContextN(BTrace::EHeap, BTrace::EHeapAlloc, (TUint32)this, (TUint32)addr, traceData, sizeof(traceData)); + } + else + BTraceContext8(BTrace::EHeap, BTrace::EHeapAllocFail, (TUint32)this, (TUint32)(aSize - __DEBUG_HDR_SIZE)); + } +#endif + return addr; +} +#else + +TAny* RHybridHeap::Alloc(TInt aSize) +{ + __ASSERT_ALWAYS((TUint)aSize<(KMaxTInt/2),HEAP_PANIC(ETHeapBadAllocatedCellSize)); + __SIMULATE_ALLOC_FAIL(return NULL;) + + TAny* addr; +#ifdef ENABLE_BTRACE + TInt aSubAllocator=0; +#endif + + Lock(); + + __ALLOC_DEBUG_HEADER(aSize); + + if (aSize < iSlabThreshold) + { + TInt ix = iSizeMap[(aSize+3)>>2]; + HEAP_ASSERT(ix != 0xff); + addr = SlabAllocate(iSlabAlloc[ix]); + if ( !addr ) + { // Slab allocation has failed, try to allocate from DL + addr = DlMalloc(aSize); + } +#ifdef ENABLE_BTRACE + else + aSubAllocator=1; +#endif + }else if((aSize >> iPageThreshold)==0) + { + addr = DlMalloc(aSize); + } + else + { + addr = PagedAllocate(aSize); + if ( !addr ) + { // Page allocation has failed, try to allocate from DL + addr = DlMalloc(aSize); + } +#ifdef ENABLE_BTRACE + else + aSubAllocator=2; +#endif + } + + if ( addr ) + { +// iCellCount++; + __SET_DEBUG_DATA(addr, iNestingLevel, ++iAllocCount); + addr = __GET_USER_DATA_BFR(addr); + __INCREMENT_COUNTERS(addr); + } + Unlock(); + +#ifdef ENABLE_BTRACE + if (iFlags & ETraceAllocs) + { + if ( addr ) + { + TUint32 traceData[3]; + traceData[0] = AllocLen(addr); + traceData[1] = aSize - __DEBUG_HDR_SIZE; + traceData[2] = aSubAllocator; + BTraceContextN(BTrace::EHeap, BTrace::EHeapAlloc, (TUint32)this, (TUint32)addr, traceData, sizeof(traceData)); + } + else + BTraceContext8(BTrace::EHeap, BTrace::EHeapAllocFail, (TUint32)this, (TUint32)(aSize - __DEBUG_HDR_SIZE)); + } +#endif + + return addr; +} +#endif // __KERNEL_MODE__ + +#ifndef __KERNEL_MODE__ +TInt RHybridHeap::Compress() +{ + if ( IS_FIXED_HEAP ) + return 0; + + Lock(); + TInt Reduced = SysTrim(GM, 0); + if (iSparePage) + { + Unmap(iSparePage, iPageSize); + iSparePage = 0; + Reduced += iPageSize; + } + Unlock(); + return Reduced; +} +#endif + +void RHybridHeap::Free(TAny* aPtr) +{ + __CHECK_THREAD_STATE; + if ( !aPtr ) + return; +#ifdef ENABLE_BTRACE + TInt aSubAllocator=0; +#endif + Lock(); + + aPtr = __GET_DEBUG_DATA_BFR(aPtr); + +#ifndef __KERNEL_MODE__ + if (PtrDiff(aPtr, this) >= 0) + { +#endif + __DL_BFR_CHECK(GM, aPtr); + __DECREMENT_COUNTERS(__GET_USER_DATA_BFR(aPtr)); + __ZAP_CELL(aPtr); + DlFree( aPtr); +#ifndef __KERNEL_MODE__ + } + + else if ( LowBits(aPtr, iPageSize) == 0 ) + { +#ifdef ENABLE_BTRACE + aSubAllocator = 2; +#endif + __PAGE_BFR_CHECK(aPtr); + __DECREMENT_COUNTERS(__GET_USER_DATA_BFR(aPtr)); + PagedFree(aPtr); + } + else + { +#ifdef ENABLE_BTRACE + aSubAllocator = 1; +#endif + TUint32 bm[4]; + __SLAB_BFR_CHECK(slab::SlabFor(aPtr),aPtr,bm); + __DECREMENT_COUNTERS(__GET_USER_DATA_BFR(aPtr)); + __ZAP_CELL(aPtr); + SlabFree(aPtr); + } +#endif // __KERNEL_MODE__ +// iCellCount--; + Unlock(); +#ifdef ENABLE_BTRACE + if (iFlags & ETraceAllocs) + { + TUint32 traceData; + traceData = aSubAllocator; + BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)__GET_USER_DATA_BFR(aPtr), &traceData, sizeof(traceData)); + } +#endif +} + +#ifndef __KERNEL_MODE__ +void RHybridHeap::Reset() +/** +Frees all allocated cells on this heap. +*/ +{ + Lock(); + if ( !IS_FIXED_HEAP ) + { + if ( GM->iSeg.iSize > (iMinLength - sizeof(*this)) ) + Unmap(GM->iSeg.iBase + (iMinLength - sizeof(*this)), (GM->iSeg.iSize - (iMinLength - sizeof(*this)))); + ResetBitmap(); + if ( !iDLOnly ) + Init(iSlabConfigBits, iPageThreshold); + else + Init(0,0); + } + else Init(0,0); + Unlock(); +} +#endif + +TAny* RHybridHeap::ReAllocImpl(TAny* aPtr, TInt aSize, TInt aMode) +{ + // First handle special case of calling reallocate with NULL aPtr + if (!aPtr) + { + if (( aMode & ENeverMove ) == 0 ) + { + aPtr = Alloc(aSize - __DEBUG_HDR_SIZE); + aPtr = __GET_DEBUG_DATA_BFR(aPtr); + } + return aPtr; + } + + TInt oldsize = AllocLen(__GET_USER_DATA_BFR(aPtr)) + __DEBUG_HDR_SIZE; + + // Insist on geometric growth when reallocating memory, this reduces copying and fragmentation + // generated during arithmetic growth of buffer/array/vector memory + // Experiments have shown that 25% is a good threshold for this policy + if (aSize <= oldsize) + { + if (aSize >= oldsize - (oldsize>>2)) + return aPtr; // don't change if >75% original size + } + else + { + __SIMULATE_ALLOC_FAIL(return NULL;) + if (aSize < oldsize + (oldsize>>2)) + { + aSize = _ALIGN_UP(oldsize + (oldsize>>2), 4); // grow to at least 125% original size + } + } + __DEBUG_SAVE(aPtr); + + TAny* newp; +#ifdef __KERNEL_MODE__ + Lock(); + __DL_BFR_CHECK(GM, aPtr); + newp = DlRealloc(aPtr, aSize, aMode); + Unlock(); + if ( newp ) + { + if ( aSize > oldsize ) + memclr(((TUint8*)newp) + oldsize, (aSize-oldsize)); // Buffer has grown in place, clear extra + __DEBUG_RESTORE(newp); + __UPDATE_ALLOC_COUNT(aPtr, newp, ++iAllocCount); + __UPDATE_TOTAL_ALLOC(newp, oldsize); + } +#else + // Decide how to reallocate based on (a) the current cell location, (b) the mode requested and (c) the new size + if ( PtrDiff(aPtr, this) >= 0 ) + { // current cell in Doug Lea iArena + if ( (aMode & ENeverMove) + || + (!(aMode & EAllowMoveOnShrink) && (aSize < oldsize)) + || + ((aSize >= iSlabThreshold) && ((aSize >> iPageThreshold) == 0)) ) + { + Lock(); + __DL_BFR_CHECK(GM, aPtr); + newp = DlRealloc(aPtr, aSize, aMode); // old and new in DL allocator + Unlock(); + __DEBUG_RESTORE(newp); + __UPDATE_ALLOC_COUNT(aPtr,newp, ++iAllocCount); + __UPDATE_TOTAL_ALLOC(newp, oldsize); + return newp; + } + } + else if (LowBits(aPtr, iPageSize) == 0) + { // current cell in paged iArena + if ( (aMode & ENeverMove) + || + (!(aMode & EAllowMoveOnShrink) && (aSize < oldsize)) + || + ((aSize >> iPageThreshold) != 0) ) + { + Lock(); + __PAGE_BFR_CHECK(aPtr); + newp = PagedReallocate(aPtr, aSize, aMode); // old and new in paged allocator + Unlock(); + __DEBUG_RESTORE(newp); + __UPDATE_ALLOC_COUNT(aPtr,newp, ++iAllocCount); + __UPDATE_TOTAL_ALLOC(newp, oldsize); + return newp; + } + } + else + { // current cell in slab iArena + TUint32 bm[4]; + Lock(); + __SLAB_BFR_CHECK(slab::SlabFor(aPtr), aPtr, bm); + Unlock(); + if ( aSize <= oldsize) + return aPtr; + if (aMode & ENeverMove) + return NULL; // cannot grow in slab iArena + // just use alloc/copy/free... + } + + // fallback to allocate and copy + // shouldn't get here if we cannot move the cell + // __ASSERT(mode == emobile || (mode==efixshrink && size>oldsize)); + + newp = Alloc(aSize - __DEBUG_HDR_SIZE); + newp = __GET_DEBUG_DATA_BFR(newp); + if (newp) + { + memcpy(newp, aPtr, oldsize +//#define DEBUG_REALLOC +#ifdef DEBUG_REALLOC +#include +#endif + +inline void RHybridHeap::InitBins(mstate m) +{ + /* Establish circular links for iSmallBins */ + bindex_t i; + for (i = 0; i < NSMALLBINS; ++i) { + sbinptr bin = SMALLBIN_AT(m,i); + bin->iFd = bin->iBk = bin; + } + } +/* ---------------------------- malloc support --------------------------- */ + +/* allocate a large request from the best fitting chunk in a treebin */ +void* RHybridHeap::TmallocLarge(mstate m, size_t nb) { + tchunkptr v = 0; + size_t rsize = -nb; /* Unsigned negation */ + tchunkptr t; + bindex_t idx; + ComputeTreeIndex(nb, idx); + + if ((t = *TREEBIN_AT(m, idx)) != 0) + { + /* Traverse tree for this bin looking for node with size == nb */ + size_t sizebits = nb << LEFTSHIFT_FOR_TREE_INDEX(idx); + tchunkptr rst = 0; /* The deepest untaken right subtree */ + for (;;) + { + tchunkptr rt; + size_t trem = CHUNKSIZE(t) - nb; + if (trem < rsize) + { + v = t; + if ((rsize = trem) == 0) + break; + } + rt = t->iChild[1]; + t = t->iChild[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; + if (rt != 0 && rt != t) + rst = rt; + if (t == 0) + { + t = rst; /* set t to least subtree holding sizes > nb */ + break; + } + sizebits <<= 1; + } + } + if (t == 0 && v == 0) + { /* set t to root of next non-empty treebin */ + binmap_t leftbits = LEFT_BITS(IDX2BIT(idx)) & m->iTreeMap; + if (leftbits != 0) + { + bindex_t i; + binmap_t leastbit = LEAST_BIT(leftbits); + ComputeBit2idx(leastbit, i); + t = *TREEBIN_AT(m, i); + } + } + while (t != 0) + { /* Find smallest of tree or subtree */ + size_t trem = CHUNKSIZE(t) - nb; + if (trem < rsize) { + rsize = trem; + v = t; + } + t = LEFTMOST_CHILD(t); + } + /* If iDv is a better fit, return 0 so malloc will use it */ + if (v != 0 && rsize < (size_t)(m->iDvSize - nb)) + { + if (RTCHECK(OK_ADDRESS(m, v))) + { /* split */ + mchunkptr r = CHUNK_PLUS_OFFSET(v, nb); + HEAP_ASSERT(CHUNKSIZE(v) == rsize + nb); + if (RTCHECK(OK_NEXT(v, r))) + { + UnlinkLargeChunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + SET_INUSE_AND_PINUSE(m, v, (rsize + nb)); + else + { + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(m, v, nb); + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(r, rsize); + InsertChunk(m, r, rsize); + } + return CHUNK2MEM(v); + } + } + // CORRUPTION_ERROR_ACTION(m); + } + return 0; + } + +/* allocate a small request from the best fitting chunk in a treebin */ +void* RHybridHeap::TmallocSmall(mstate m, size_t nb) +{ + tchunkptr t, v; + size_t rsize; + bindex_t i; + binmap_t leastbit = LEAST_BIT(m->iTreeMap); + ComputeBit2idx(leastbit, i); + + v = t = *TREEBIN_AT(m, i); + rsize = CHUNKSIZE(t) - nb; + + while ((t = LEFTMOST_CHILD(t)) != 0) + { + size_t trem = CHUNKSIZE(t) - nb; + if (trem < rsize) + { + rsize = trem; + v = t; + } + } + + if (RTCHECK(OK_ADDRESS(m, v))) + { + mchunkptr r = CHUNK_PLUS_OFFSET(v, nb); + HEAP_ASSERT(CHUNKSIZE(v) == rsize + nb); + if (RTCHECK(OK_NEXT(v, r))) + { + UnlinkLargeChunk(m, v); + if (rsize < MIN_CHUNK_SIZE) + SET_INUSE_AND_PINUSE(m, v, (rsize + nb)); + else + { + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(m, v, nb); + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(r, rsize); + ReplaceDv(m, r, rsize); + } + return CHUNK2MEM(v); + } + } + // CORRUPTION_ERROR_ACTION(m); + // return 0; + } + +inline void RHybridHeap::InitTop(mstate m, mchunkptr p, size_t psize) +{ + /* Ensure alignment */ + size_t offset = ALIGN_OFFSET(CHUNK2MEM(p)); + p = (mchunkptr)((TUint8*)p + offset); + psize -= offset; + m->iTop = p; + m->iTopSize = psize; + p->iHead = psize | PINUSE_BIT; + /* set size of fake trailing chunk holding overhead space only once */ + mchunkptr chunkPlusOff = CHUNK_PLUS_OFFSET(p, psize); + chunkPlusOff->iHead = TOP_FOOT_SIZE; + m->iTrimCheck = KHeapShrinkHysRatio*(iGrowBy>>8); +} + + +/* Unlink the first chunk from a smallbin */ +inline void RHybridHeap::UnlinkFirstSmallChunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I) +{ + mchunkptr F = P->iFd; + HEAP_ASSERT(P != B); + HEAP_ASSERT(P != F); + HEAP_ASSERT(CHUNKSIZE(P) == SMALL_INDEX2SIZE(I)); + if (B == F) + CLEAR_SMALLMAP(M, I); + else if (RTCHECK(OK_ADDRESS(M, F))) + { + B->iFd = F; + F->iBk = B; + } + else + { + CORRUPTION_ERROR_ACTION(M); + } +} +/* Link a free chunk into a smallbin */ +inline void RHybridHeap::InsertSmallChunk(mstate M,mchunkptr P, size_t S) +{ + bindex_t I = SMALL_INDEX(S); + mchunkptr B = SMALLBIN_AT(M, I); + mchunkptr F = B; + HEAP_ASSERT(S >= MIN_CHUNK_SIZE); + if (!SMALLMAP_IS_MARKED(M, I)) + MARK_SMALLMAP(M, I); + else if (RTCHECK(OK_ADDRESS(M, B->iFd))) + F = B->iFd; + else + { + CORRUPTION_ERROR_ACTION(M); + } + B->iFd = P; + F->iBk = P; + P->iFd = F; + P->iBk = B; +} + + +inline void RHybridHeap::InsertChunk(mstate M,mchunkptr P,size_t S) +{ + if (IS_SMALL(S)) + InsertSmallChunk(M, P, S); + else + { + tchunkptr TP = (tchunkptr)(P); InsertLargeChunk(M, TP, S); + } +} + +inline void RHybridHeap::UnlinkLargeChunk(mstate M,tchunkptr X) +{ + tchunkptr XP = X->iParent; + tchunkptr R; + if (X->iBk != X) + { + tchunkptr F = X->iFd; + R = X->iBk; + if (RTCHECK(OK_ADDRESS(M, F))) + { + F->iBk = R; + R->iFd = F; + } + else + { + CORRUPTION_ERROR_ACTION(M); + } + } + else + { + tchunkptr* RP; + if (((R = *(RP = &(X->iChild[1]))) != 0) || + ((R = *(RP = &(X->iChild[0]))) != 0)) + { + tchunkptr* CP; + while ((*(CP = &(R->iChild[1])) != 0) || + (*(CP = &(R->iChild[0])) != 0)) + { + R = *(RP = CP); + } + if (RTCHECK(OK_ADDRESS(M, RP))) + *RP = 0; + else + { + CORRUPTION_ERROR_ACTION(M); + } + } + } + if (XP != 0) + { + tbinptr* H = TREEBIN_AT(M, X->iIndex); + if (X == *H) + { + if ((*H = R) == 0) + CLEAR_TREEMAP(M, X->iIndex); + } + else if (RTCHECK(OK_ADDRESS(M, XP))) + { + if (XP->iChild[0] == X) + XP->iChild[0] = R; + else + XP->iChild[1] = R; + } + else + CORRUPTION_ERROR_ACTION(M); + if (R != 0) + { + if (RTCHECK(OK_ADDRESS(M, R))) + { + tchunkptr C0, C1; + R->iParent = XP; + if ((C0 = X->iChild[0]) != 0) + { + if (RTCHECK(OK_ADDRESS(M, C0))) + { + R->iChild[0] = C0; + C0->iParent = R; + } + else + CORRUPTION_ERROR_ACTION(M); + } + if ((C1 = X->iChild[1]) != 0) + { + if (RTCHECK(OK_ADDRESS(M, C1))) + { + R->iChild[1] = C1; + C1->iParent = R; + } + else + CORRUPTION_ERROR_ACTION(M); + } + } + else + CORRUPTION_ERROR_ACTION(M); + } + } +} + +/* Unlink a chunk from a smallbin */ +inline void RHybridHeap::UnlinkSmallChunk(mstate M, mchunkptr P,size_t S) +{ + mchunkptr F = P->iFd; + mchunkptr B = P->iBk; + bindex_t I = SMALL_INDEX(S); + HEAP_ASSERT(P != B); + HEAP_ASSERT(P != F); + HEAP_ASSERT(CHUNKSIZE(P) == SMALL_INDEX2SIZE(I)); + if (F == B) + CLEAR_SMALLMAP(M, I); + else if (RTCHECK((F == SMALLBIN_AT(M,I) || OK_ADDRESS(M, F)) && + (B == SMALLBIN_AT(M,I) || OK_ADDRESS(M, B)))) + { + F->iBk = B; + B->iFd = F; + } + else + { + CORRUPTION_ERROR_ACTION(M); + } +} + +inline void RHybridHeap::UnlinkChunk(mstate M, mchunkptr P, size_t S) +{ + if (IS_SMALL(S)) + UnlinkSmallChunk(M, P, S); + else + { + tchunkptr TP = (tchunkptr)(P); UnlinkLargeChunk(M, TP); + } +} + +// For DL debug functions +void RHybridHeap::DoComputeTreeIndex(size_t S, bindex_t& I) +{ + ComputeTreeIndex(S, I); +} + +inline void RHybridHeap::ComputeTreeIndex(size_t S, bindex_t& I) +{ + size_t X = S >> TREEBIN_SHIFT; + if (X == 0) + I = 0; + else if (X > 0xFFFF) + I = NTREEBINS-1; + else + { + unsigned int Y = (unsigned int)X; + unsigned int N = ((Y - 0x100) >> 16) & 8; + unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; + N += K; + N += K = (((Y <<= K) - 0x4000) >> 16) & 2; + K = 14 - N + ((Y <<= K) >> 15); + I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)); + } +} + +/* ------------------------- Operations on trees ------------------------- */ + +/* Insert chunk into tree */ +inline void RHybridHeap::InsertLargeChunk(mstate M,tchunkptr X,size_t S) +{ + tbinptr* H; + bindex_t I; + ComputeTreeIndex(S, I); + H = TREEBIN_AT(M, I); + X->iIndex = I; + X->iChild[0] = X->iChild[1] = 0; + if (!TREEMAP_IS_MARKED(M, I)) + { + MARK_TREEMAP(M, I); + *H = X; + X->iParent = (tchunkptr)H; + X->iFd = X->iBk = X; + } + else + { + tchunkptr T = *H; + size_t K = S << LEFTSHIFT_FOR_TREE_INDEX(I); + for (;;) + { + if (CHUNKSIZE(T) != S) { + tchunkptr* C = &(T->iChild[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]); + K <<= 1; + if (*C != 0) + T = *C; + else if (RTCHECK(OK_ADDRESS(M, C))) + { + *C = X; + X->iParent = T; + X->iFd = X->iBk = X; + break; + } + else + { + CORRUPTION_ERROR_ACTION(M); + break; + } + } + else + { + tchunkptr F = T->iFd; + if (RTCHECK(OK_ADDRESS(M, T) && OK_ADDRESS(M, F))) + { + T->iFd = F->iBk = X; + X->iFd = F; + X->iBk = T; + X->iParent = 0; + break; + } + else + { + CORRUPTION_ERROR_ACTION(M); + break; + } + } + } + } +} + +/* +Unlink steps: + +1. If x is a chained node, unlink it from its same-sized iFd/iBk links +and choose its iBk node as its replacement. +2. If x was the last node of its size, but not a leaf node, it must +be replaced with a leaf node (not merely one with an open left or +right), to make sure that lefts and rights of descendents +correspond properly to bit masks. We use the rightmost descendent +of x. We could use any other leaf, but this is easy to locate and +tends to counteract removal of leftmosts elsewhere, and so keeps +paths shorter than minimally guaranteed. This doesn't loop much +because on average a node in a tree is near the bottom. +3. If x is the base of a chain (i.e., has iParent links) relink +x's iParent and children to x's replacement (or null if none). +*/ + +/* Replace iDv node, binning the old one */ +/* Used only when iDvSize known to be small */ +inline void RHybridHeap::ReplaceDv(mstate M, mchunkptr P, size_t S) +{ + size_t DVS = M->iDvSize; + if (DVS != 0) + { + mchunkptr DV = M->iDv; + HEAP_ASSERT(IS_SMALL(DVS)); + InsertSmallChunk(M, DV, DVS); + } + M->iDvSize = S; + M->iDv = P; +} + + +inline void RHybridHeap::ComputeBit2idx(binmap_t X,bindex_t& I) +{ + unsigned int Y = X - 1; + unsigned int K = Y >> (16-4) & 16; + unsigned int N = K; Y >>= K; + N += K = Y >> (8-3) & 8; Y >>= K; + N += K = Y >> (4-2) & 4; Y >>= K; + N += K = Y >> (2-1) & 2; Y >>= K; + N += K = Y >> (1-0) & 1; Y >>= K; + I = (bindex_t)(N + Y); +} + + + +int RHybridHeap::SysTrim(mstate m, size_t pad) +{ + size_t extra = 0; + + if ( IS_INITIALIZED(m) ) + { + pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ + + if (m->iTopSize > pad) + { + extra = Floor(m->iTopSize - pad, iPageSize); + if ( (m->iSeg.iSize - extra) < (iMinLength - sizeof(*this)) ) + { + if ( m->iSeg.iSize > (iMinLength - sizeof(*this)) ) + extra = Floor(m->iSeg.iSize - (iMinLength - sizeof(*this)), iPageSize); /* do not shrink heap below min length */ + else extra = 0; + } + + if ( extra ) + { + Unmap(m->iSeg.iBase + m->iSeg.iSize - extra, extra); + + m->iSeg.iSize -= extra; + InitTop(m, m->iTop, m->iTopSize - extra); + CHECK_TOP_CHUNK(m, m->iTop); + } + } + + } + + return extra; +} + +/* Get memory from system using MORECORE */ + +void* RHybridHeap::SysAlloc(mstate m, size_t nb) +{ + HEAP_ASSERT(m->iTop); + /* Subtract out existing available iTop space from MORECORE request. */ +// size_t asize = _ALIGN_UP(nb - m->iTopSize + TOP_FOOT_SIZE + SIZE_T_ONE, iGrowBy); + TInt asize = _ALIGN_UP(nb - m->iTopSize + SYS_ALLOC_PADDING, iGrowBy); // From DLA version 2.8.4 + + char* br = (char*)Map(m->iSeg.iBase+m->iSeg.iSize, asize); + if (!br) + return 0; + HEAP_ASSERT(br == (char*)m->iSeg.iBase+m->iSeg.iSize); + + /* Merge with an existing segment */ + m->iSeg.iSize += asize; + InitTop(m, m->iTop, m->iTopSize + asize); + + if (nb < m->iTopSize) + { /* Allocate from new or extended iTop space */ + size_t rsize = m->iTopSize -= nb; + mchunkptr p = m->iTop; + mchunkptr r = m->iTop = CHUNK_PLUS_OFFSET(p, nb); + r->iHead = rsize | PINUSE_BIT; + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(m, p, nb); + CHECK_TOP_CHUNK(m, m->iTop); + CHECK_MALLOCED_CHUNK(m, CHUNK2MEM(p), nb); + return CHUNK2MEM(p); + } + + return 0; +} + + +void RHybridHeap::InitDlMalloc(size_t capacity, int /*locked*/) +{ + memset(GM,0,sizeof(malloc_state)); + // The maximum amount that can be allocated can be calculated as:- + // 2^sizeof(size_t) - sizeof(malloc_state) - TOP_FOOT_SIZE - page Size(all accordingly padded) + // If the capacity exceeds this, no allocation will be done. + GM->iSeg.iBase = iBase; + GM->iSeg.iSize = capacity; + InitBins(GM); + InitTop(GM, (mchunkptr)iBase, capacity - TOP_FOOT_SIZE); +} + +void* RHybridHeap::DlMalloc(size_t bytes) +{ + /* + Basic algorithm: + If a small request (< 256 bytes minus per-chunk overhead): + 1. If one exists, use a remainderless chunk in associated smallbin. + (Remainderless means that there are too few excess bytes to + represent as a chunk.) + 2. If it is big enough, use the iDv chunk, which is normally the + chunk adjacent to the one used for the most recent small request. + 3. If one exists, split the smallest available chunk in a bin, + saving remainder in iDv. + 4. If it is big enough, use the iTop chunk. + 5. If available, get memory from system and use it + Otherwise, for a large request: + 1. Find the smallest available binned chunk that fits, and use it + if it is better fitting than iDv chunk, splitting if necessary. + 2. If better fitting than any binned chunk, use the iDv chunk. + 3. If it is big enough, use the iTop chunk. + 4. If request size >= mmap threshold, try to directly mmap this chunk. + 5. If available, get memory from system and use it +*/ + void* mem; + size_t nb; + if (bytes <= MAX_SMALL_REQUEST) + { + bindex_t idx; + binmap_t smallbits; + nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : PAD_REQUEST(bytes); + idx = SMALL_INDEX(nb); + smallbits = GM->iSmallMap >> idx; + + if ((smallbits & 0x3U) != 0) + { /* Remainderless fit to a smallbin. */ + mchunkptr b, p; + idx += ~smallbits & 1; /* Uses next bin if idx empty */ + b = SMALLBIN_AT(GM, idx); + p = b->iFd; + HEAP_ASSERT(CHUNKSIZE(p) == SMALL_INDEX2SIZE(idx)); + UnlinkFirstSmallChunk(GM, b, p, idx); + SET_INUSE_AND_PINUSE(GM, p, SMALL_INDEX2SIZE(idx)); + mem = CHUNK2MEM(p); + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + + else if (nb > GM->iDvSize) + { + if (smallbits != 0) + { /* Use chunk in next nonempty smallbin */ + mchunkptr b, p, r; + size_t rsize; + bindex_t i; + binmap_t leftbits = (smallbits << idx) & LEFT_BITS(IDX2BIT(idx)); + binmap_t leastbit = LEAST_BIT(leftbits); + ComputeBit2idx(leastbit, i); + b = SMALLBIN_AT(GM, i); + p = b->iFd; + HEAP_ASSERT(CHUNKSIZE(p) == SMALL_INDEX2SIZE(i)); + UnlinkFirstSmallChunk(GM, b, p, i); + rsize = SMALL_INDEX2SIZE(i) - nb; + /* Fit here cannot be remainderless if 4byte sizes */ + if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) + SET_INUSE_AND_PINUSE(GM, p, SMALL_INDEX2SIZE(i)); + else + { + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(GM, p, nb); + r = CHUNK_PLUS_OFFSET(p, nb); + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(r, rsize); + ReplaceDv(GM, r, rsize); + } + mem = CHUNK2MEM(p); + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + + else if (GM->iTreeMap != 0 && (mem = TmallocSmall(GM, nb)) != 0) + { + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + } + } + else if (bytes >= MAX_REQUEST) + nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ + else + { + nb = PAD_REQUEST(bytes); + if (GM->iTreeMap != 0 && (mem = TmallocLarge(GM, nb)) != 0) + { + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + } + + if (nb <= GM->iDvSize) + { + size_t rsize = GM->iDvSize - nb; + mchunkptr p = GM->iDv; + if (rsize >= MIN_CHUNK_SIZE) + { /* split iDv */ + mchunkptr r = GM->iDv = CHUNK_PLUS_OFFSET(p, nb); + GM->iDvSize = rsize; + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(r, rsize); + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(GM, p, nb); + } + else + { /* exhaust iDv */ + size_t dvs = GM->iDvSize; + GM->iDvSize = 0; + GM->iDv = 0; + SET_INUSE_AND_PINUSE(GM, p, dvs); + } + mem = CHUNK2MEM(p); + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + + else if (nb < GM->iTopSize) + { /* Split iTop */ + size_t rsize = GM->iTopSize -= nb; + mchunkptr p = GM->iTop; + mchunkptr r = GM->iTop = CHUNK_PLUS_OFFSET(p, nb); + r->iHead = rsize | PINUSE_BIT; + SET_SIZE_AND_PINUSE_OF_INUSE_CHUNK(GM, p, nb); + mem = CHUNK2MEM(p); + CHECK_TOP_CHUNK(GM, GM->iTop); + CHECK_MALLOCED_CHUNK(GM, mem, nb); + return mem; + } + + return SysAlloc(GM, nb); +} + + +void RHybridHeap::DlFree(void* mem) +{ + /* + Consolidate freed chunks with preceeding or succeeding bordering + free chunks, if they exist, and then place in a bin. Intermixed + with special cases for iTop, iDv, mmapped chunks, and usage errors. +*/ + mchunkptr p = MEM2CHUNK(mem); + CHECK_INUSE_CHUNK(GM, p); + if (RTCHECK(OK_ADDRESS(GM, p) && OK_CINUSE(p))) + { + size_t psize = CHUNKSIZE(p); + mchunkptr next = CHUNK_PLUS_OFFSET(p, psize); + if (!PINUSE(p)) + { + size_t prevsize = p->iPrevFoot; + mchunkptr prev = CHUNK_MINUS_OFFSET(p, prevsize); + psize += prevsize; + p = prev; + if (RTCHECK(OK_ADDRESS(GM, prev))) + { /* consolidate backward */ + if (p != GM->iDv) + { + UnlinkChunk(GM, p, prevsize); + } + else if ((next->iHead & INUSE_BITS) == INUSE_BITS) + { + GM->iDvSize = psize; + SET_FREE_WITH_PINUSE(p, psize, next); + return; + } + } + else + { + USAGE_ERROR_ACTION(GM, p); + return; + } + } + + if (RTCHECK(OK_NEXT(p, next) && OK_PINUSE(next))) + { + if (!CINUSE(next)) + { /* consolidate forward */ + if (next == GM->iTop) + { + size_t tsize = GM->iTopSize += psize; + GM->iTop = p; + p->iHead = tsize | PINUSE_BIT; + if (p == GM->iDv) + { + GM->iDv = 0; + GM->iDvSize = 0; + } + if ( !IS_FIXED_HEAP && SHOULD_TRIM(GM, tsize) ) + SysTrim(GM, 0); + return; + } + else if (next == GM->iDv) + { + size_t dsize = GM->iDvSize += psize; + GM->iDv = p; + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(p, dsize); + return; + } + else + { + size_t nsize = CHUNKSIZE(next); + psize += nsize; + UnlinkChunk(GM, next, nsize); + SET_SIZE_AND_PINUSE_OF_FREE_CHUNK(p, psize); + if (p == GM->iDv) + { + GM->iDvSize = psize; + return; + } + } + } + else + SET_FREE_WITH_PINUSE(p, psize, next); + InsertChunk(GM, p, psize); + CHECK_FREE_CHUNK(GM, p); + return; + } + } +} + + +void* RHybridHeap::DlRealloc(void* oldmem, size_t bytes, TInt mode) +{ + mchunkptr oldp = MEM2CHUNK(oldmem); + size_t oldsize = CHUNKSIZE(oldp); + mchunkptr next = CHUNK_PLUS_OFFSET(oldp, oldsize); + mchunkptr newp = 0; + void* extra = 0; + + /* Try to either shrink or extend into iTop. Else malloc-copy-free */ + + if (RTCHECK(OK_ADDRESS(GM, oldp) && OK_CINUSE(oldp) && + OK_NEXT(oldp, next) && OK_PINUSE(next))) + { + size_t nb = REQUEST2SIZE(bytes); + if (oldsize >= nb) { /* already big enough */ + size_t rsize = oldsize - nb; + newp = oldp; + if (rsize >= MIN_CHUNK_SIZE) + { + mchunkptr remainder = CHUNK_PLUS_OFFSET(newp, nb); + SET_INUSE(GM, newp, nb); +// SET_INUSE(GM, remainder, rsize); + SET_INUSE_AND_PINUSE(GM, remainder, rsize); // corrected in original DLA version V2.8.4 + extra = CHUNK2MEM(remainder); + } + } + else if (next == GM->iTop && oldsize + GM->iTopSize > nb) + { + /* Expand into iTop */ + size_t newsize = oldsize + GM->iTopSize; + size_t newtopsize = newsize - nb; + mchunkptr newtop = CHUNK_PLUS_OFFSET(oldp, nb); + SET_INUSE(GM, oldp, nb); + newtop->iHead = newtopsize |PINUSE_BIT; + GM->iTop = newtop; + GM->iTopSize = newtopsize; + newp = oldp; + } + } + else + { + USAGE_ERROR_ACTION(GM, oldmem); + } + + if (newp != 0) + { + if (extra != 0) + { + DlFree(extra); + } + CHECK_INUSE_CHUNK(GM, newp); + return CHUNK2MEM(newp); + } + else + { + if ( mode & ENeverMove ) + return 0; // cannot move + void* newmem = DlMalloc(bytes); + if (newmem != 0) + { + size_t oc = oldsize - OVERHEAD_FOR(oldp); + memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); + DlFree(oldmem); + } + return newmem; + } + // return 0; +} + +size_t RHybridHeap::DlInfo(struct HeapInfo* i, SWalkInfo* wi) const +{ + TInt max = ((GM->iTopSize-1) & ~CHUNK_ALIGN_MASK) - CHUNK_OVERHEAD; + if ( max < 0 ) + max = 0; + else ++i->iFreeN; // iTop always free + i->iFreeBytes += max; + + Walk(wi, GM->iTop, max, EGoodFreeCell, EDougLeaAllocator); // Introduce DL iTop buffer to the walk function + + for (mchunkptr q = ALIGN_AS_CHUNK(GM->iSeg.iBase); q != GM->iTop; q = NEXT_CHUNK(q)) + { + TInt sz = CHUNKSIZE(q); + if (!CINUSE(q)) + { + if ( sz > max ) + max = sz; + i->iFreeBytes += sz; + ++i->iFreeN; + Walk(wi, CHUNK2MEM(q), sz, EGoodFreeCell, EDougLeaAllocator); // Introduce DL free buffer to the walk function + } + else + { + i->iAllocBytes += sz - CHUNK_OVERHEAD; + ++i->iAllocN; + Walk(wi, CHUNK2MEM(q), (sz- CHUNK_OVERHEAD), EGoodAllocatedCell, EDougLeaAllocator); // Introduce DL allocated buffer to the walk function + } + } + return max; // return largest available chunk size +} + +// +// get statistics about the state of the allocator +// +TInt RHybridHeap::GetInfo(struct HeapInfo* i, SWalkInfo* wi) const +{ + memset(i,0,sizeof(HeapInfo)); + i->iFootprint = iChunkSize; + i->iMaxSize = iMaxLength; +#ifndef __KERNEL_MODE__ + PagedInfo(i, wi); + SlabInfo(i, wi); +#endif + return DlInfo(i,wi); +} + +// +// Methods to commit/decommit memory pages from chunk +// + + +void* RHybridHeap::Map(void* p, TInt sz) +// +// allocate pages in the chunk +// if p is NULL, Find an allocate the required number of pages (which must lie in the lower half) +// otherwise commit the pages specified +// +{ + HEAP_ASSERT(sz > 0); + + if ( iChunkSize + sz > iMaxLength) + return 0; + +#ifdef __KERNEL_MODE__ + + TInt r = ((DChunk*)iChunkHandle)->Adjust(iChunkSize + iOffset + sz); + if (r < 0) + return 0; + + iChunkSize += sz; + +#else + + RChunk chunk; + chunk.SetHandle(iChunkHandle); + if ( p ) + { + TInt r; + if ( iUseAdjust ) + r = chunk.Adjust(iChunkSize + sz); + else + { + HEAP_ASSERT(sz == Ceiling(sz, iPageSize)); + HEAP_ASSERT(p == Floor(p, iPageSize)); + r = chunk.Commit(iOffset + PtrDiff(p, this),sz); + } + if (r < 0) + return 0; + } + else + { + TInt r = chunk.Allocate(sz); + if (r < 0) + return 0; + if (r > iOffset) + { + // can't allow page allocations in DL zone + chunk.Decommit(r, sz); + return 0; + } + p = Offset(this, r - iOffset); + } + iChunkSize += sz; + + if (iChunkSize >= iSlabInitThreshold) + { // set up slab system now that heap is large enough + SlabConfig(iSlabConfigBits); + iSlabInitThreshold = KMaxTInt32; + } + +#endif // __KERNEL_MODE__ + +#ifdef ENABLE_BTRACE + if(iChunkSize > iHighWaterMark) + { + iHighWaterMark = Ceiling(iChunkSize,16*iPageSize); + TUint32 traceData[6]; + traceData[0] = iChunkHandle; + traceData[1] = iMinLength; + traceData[2] = iMaxLength; + traceData[3] = sz; + traceData[4] = iChunkSize; + traceData[5] = iHighWaterMark; + BTraceContextN(BTrace::ETest1, 90, (TUint32)this, 33, traceData, sizeof(traceData)); + } +#endif + + return p; +} + +void RHybridHeap::Unmap(void* p, TInt sz) +{ + HEAP_ASSERT(sz > 0); + +#ifdef __KERNEL_MODE__ + + (void)p; + HEAP_ASSERT(sz == Ceiling(sz, iPageSize)); +#if defined(_DEBUG) + TInt r = +#endif + ((DChunk*)iChunkHandle)->Adjust(iChunkSize + iOffset - sz); + HEAP_ASSERT(r >= 0); + +#else + + RChunk chunk; + chunk.SetHandle(iChunkHandle); + if ( iUseAdjust ) + { + HEAP_ASSERT(sz == Ceiling(sz, iPageSize)); +#if defined(_DEBUG) + TInt r = +#endif + chunk.Adjust(iChunkSize - sz); + HEAP_ASSERT(r >= 0); + } + else + { + HEAP_ASSERT(sz == Ceiling(sz, iPageSize)); + HEAP_ASSERT(p == Floor(p, iPageSize)); +#if defined(_DEBUG) + TInt r = +#endif + chunk.Decommit(PtrDiff(p, Offset(this,-iOffset)), sz); + HEAP_ASSERT(r >= 0); + } +#endif // __KERNEL_MODE__ + + iChunkSize -= sz; +} + + +#ifndef __KERNEL_MODE__ +// +// Slab allocator code +// + +//inline slab* slab::SlabFor(void* p) +slab* slab::SlabFor( const void* p) +{ + return (slab*)(Floor(p, SLABSIZE)); +} + +// +// Remove slab s from its tree/heap (not necessarily the root), preserving the address order +// invariant of the heap +// +void RHybridHeap::TreeRemove(slab* s) +{ + slab** r = s->iParent; + slab* c1 = s->iChild1; + slab* c2 = s->iChild2; + for (;;) + { + if (!c2) + { + *r = c1; + if (c1) + c1->iParent = r; + return; + } + if (!c1) + { + *r = c2; + c2->iParent = r; + return; + } + if (c1 > c2) + { + slab* c3 = c1; + c1 = c2; + c2 = c3; + } + slab* newc2 = c1->iChild2; + *r = c1; + c1->iParent = r; + c1->iChild2 = c2; + c2->iParent = &c1->iChild2; + s = c1; + c1 = s->iChild1; + c2 = newc2; + r = &s->iChild1; + } +} +// +// Insert slab s into the tree/heap rooted at r, preserving the address ordering +// invariant of the heap +// +void RHybridHeap::TreeInsert(slab* s,slab** r) +{ + slab* n = *r; + for (;;) + { + if (!n) + { // tree empty + *r = s; + s->iParent = r; + s->iChild1 = s->iChild2 = 0; + break; + } + if (s < n) + { // insert between iParent and n + *r = s; + s->iParent = r; + s->iChild1 = n; + s->iChild2 = 0; + n->iParent = &s->iChild1; + break; + } + slab* c1 = n->iChild1; + slab* c2 = n->iChild2; + if ((c1 - 1) > (c2 - 1)) + { + r = &n->iChild1; + n = c1; + } + else + { + r = &n->iChild2; + n = c2; + } + } +} + +void* RHybridHeap::AllocNewSlab(slabset& allocator) +// +// Acquire and initialise a new slab, returning a cell from the slab +// The strategy is: +// 1. Use the lowest address free slab, if available. This is done by using the lowest slab +// in the page at the root of the iPartialPage heap (which is address ordered). If the +// is now fully used, remove it from the iPartialPage heap. +// 2. Allocate a new page for iSlabs if no empty iSlabs are available +// +{ + page* p = page::PageFor(iPartialPage); + if (!p) + return AllocNewPage(allocator); + + unsigned h = p->iSlabs[0].iHeader; + unsigned pagemap = SlabHeaderPagemap(h); + HEAP_ASSERT(&p->iSlabs[HIBIT(pagemap)] == iPartialPage); + + unsigned slabix = LOWBIT(pagemap); + p->iSlabs[0].iHeader = h &~ (0x100<iSlabs[slabix]); +} + +/**Defination of this functionis not there in proto code***/ +#if 0 +void RHybridHeap::partial_insert(slab* s) +{ + // slab has had first cell freed and needs to be linked back into iPartial tree + slabset& ss = iSlabAlloc[iSizeMap[s->clz]]; + + HEAP_ASSERT(s->used == slabfull); + s->used = ss.fulluse - s->clz; // full-1 loading + TreeInsert(s,&ss.iPartial); + CHECKTREE(&ss.iPartial); +} +/**Defination of this functionis not there in proto code***/ +#endif + +void* RHybridHeap::AllocNewPage(slabset& allocator) +// +// Acquire and initialise a new page, returning a cell from a new slab +// The iPartialPage tree is empty (otherwise we'd have used a slab from there) +// The iPartialPage link is put in the highest addressed slab in the page, and the +// lowest addressed slab is used to fulfill the allocation request +// +{ + page* p = iSparePage; + if (p) + iSparePage = 0; + else + { + p = static_cast(Map(0, iPageSize)); + if (!p) + return 0; + } + HEAP_ASSERT(p == Floor(p, iPageSize)); + // Store page allocated for slab into paged_bitmap (for RHybridHeap::Reset()) + if (!PagedSetSize(p, iPageSize)) + { + Unmap(p, iPageSize); + return 0; + } + p->iSlabs[0].iHeader = ((1<<3) + (1<<2) + (1<<1))<<8; // set pagemap + p->iSlabs[3].iParent = &iPartialPage; + p->iSlabs[3].iChild1 = p->iSlabs[3].iChild2 = 0; + iPartialPage = &p->iSlabs[3]; + return InitNewSlab(allocator,&p->iSlabs[0]); +} + +void RHybridHeap::FreePage(page* p) +// +// Release an unused page to the OS +// A single page is cached for reuse to reduce thrashing +// the OS allocator. +// +{ + HEAP_ASSERT(Ceiling(p, iPageSize) == p); + if (!iSparePage) + { + iSparePage = p; + return; + } + + // unmapped slab page must be cleared from paged_bitmap, too + PagedZapSize(p, iPageSize); // clear page map + + Unmap(p, iPageSize); +} + +void RHybridHeap::FreeSlab(slab* s) +// +// Release an empty slab to the slab manager +// The strategy is: +// 1. The page containing the slab is checked to see the state of the other iSlabs in the page by +// inspecting the pagemap field in the iHeader of the first slab in the page. +// 2. The pagemap is updated to indicate the new unused slab +// 3. If this is the only unused slab in the page then the slab iHeader is used to add the page to +// the iPartialPage tree/heap +// 4. If all the iSlabs in the page are now unused the page is release back to the OS +// 5. If this slab has a higher address than the one currently used to track this page in +// the iPartialPage heap, the linkage is moved to the new unused slab +// +{ + TreeRemove(s); + CHECKTREE(s->iParent); + HEAP_ASSERT(SlabHeaderUsedm4(s->iHeader) == SlabHeaderSize(s->iHeader)-4); + + page* p = page::PageFor(s); + unsigned h = p->iSlabs[0].iHeader; + int slabix = s - &p->iSlabs[0]; + unsigned pagemap = SlabHeaderPagemap(h); + p->iSlabs[0].iHeader = h | (0x100<iSlabs[HIBIT(pagemap)]; + pagemap ^= (1< sl) + { // replace current link with new one. Address-order tree so position stays the same + slab** r = sl->iParent; + slab* c1 = sl->iChild1; + slab* c2 = sl->iChild2; + s->iParent = r; + s->iChild1 = c1; + s->iChild2 = c2; + *r = s; + if (c1) + c1->iParent = &s->iChild1; + if (c2) + c2->iParent = &s->iChild2; + } + CHECK(if (s < sl) s=sl); + } + HEAP_ASSERT(SlabHeaderPagemap(p->iSlabs[0].iHeader) != 0); + HEAP_ASSERT(HIBIT(SlabHeaderPagemap(p->iSlabs[0].iHeader)) == unsigned(s - &p->iSlabs[0])); +} + + +void RHybridHeap::SlabInit() +{ + iSlabThreshold=0; + iPartialPage = 0; + iFullSlab = 0; + iSparePage = 0; + memset(&iSizeMap[0],0xff,sizeof(iSizeMap)); + memset(&iSlabAlloc[0],0,sizeof(iSlabAlloc)); +} + +void RHybridHeap::SlabConfig(unsigned slabbitmap) +{ + HEAP_ASSERT((slabbitmap & ~EOkBits) == 0); + HEAP_ASSERT(MAXSLABSIZE <= 60); + + unsigned int ix = 0xff; + unsigned int bit = 1<<((MAXSLABSIZE>>2)-1); + for (int sz = MAXSLABSIZE; sz >= 0; sz -= 4, bit >>= 1) + { + if (slabbitmap & bit) + { + if (ix == 0xff) + iSlabThreshold=sz+1; + ix = (sz>>2)-1; + } + iSizeMap[sz>>2] = (TUint8) ix; + } +} + + +void* RHybridHeap::SlabAllocate(slabset& ss) +// +// Allocate a cell from the given slabset +// Strategy: +// 1. Take the partially full slab at the iTop of the heap (lowest address). +// 2. If there is no such slab, allocate from a new slab +// 3. If the slab has a non-empty freelist, pop the cell from the front of the list and update the slab +// 4. Otherwise, if the slab is not full, return the cell at the end of the currently used region of +// the slab, updating the slab +// 5. Otherwise, release the slab from the iPartial tree/heap, marking it as 'floating' and go back to +// step 1 +// +{ + for (;;) + { + slab *s = ss.iPartial; + if (!s) + break; + unsigned h = s->iHeader; + unsigned free = h & 0xff; // extract free cell positioning + if (free) + { + HEAP_ASSERT(((free<<2)-sizeof(slabhdr))%SlabHeaderSize(h) == 0); + void* p = Offset(s,free<<2); + free = *(unsigned char*)p; // get next pos in free list + h += (h&0x3C000)<<6; // update usedm4 + h &= ~0xff; + h |= free; // update freelist + s->iHeader = h; + HEAP_ASSERT(SlabHeaderFree(h) == 0 || ((SlabHeaderFree(h)<<2)-sizeof(slabhdr))%SlabHeaderSize(h) == 0); + HEAP_ASSERT(SlabHeaderUsedm4(h) <= 0x3F8u); + HEAP_ASSERT((SlabHeaderUsedm4(h)+4)%SlabHeaderSize(h) == 0); + return p; + } + unsigned h2 = h + ((h&0x3C000)<<6); +// if (h2 < 0xfc00000) + if (h2 < MAXUSEDM4BITS) + { + HEAP_ASSERT((SlabHeaderUsedm4(h2)+4)%SlabHeaderSize(h2) == 0); + s->iHeader = h2; + return Offset(s,(h>>18) + sizeof(unsigned) + sizeof(slabhdr)); + } + h |= FLOATING_BIT; // mark the slab as full-floating + s->iHeader = h; + TreeRemove(s); + slab* c = iFullSlab; // add to full list + iFullSlab = s; + s->iParent = &iFullSlab; + s->iChild1 = c; + s->iChild2 = 0; + if (c) + c->iParent = &s->iChild1; + + CHECKTREE(&ss.iPartial); + // go back and try the next slab... + } + // no iPartial iSlabs found, so allocate from a new slab + return AllocNewSlab(ss); +} + +void RHybridHeap::SlabFree(void* p) +// +// Free a cell from the slab allocator +// Strategy: +// 1. Find the containing slab (round down to nearest 1KB boundary) +// 2. Push the cell into the slab's freelist, and update the slab usage count +// 3. If this is the last allocated cell, free the slab to the main slab manager +// 4. If the slab was full-floating then insert the slab in it's respective iPartial tree +// +{ + HEAP_ASSERT(LowBits(p,3)==0); + slab* s = slab::SlabFor(p); + CHECKSLAB(s,ESlabAllocator,p); + CHECKSLABBFR(s,p); + + unsigned pos = LowBits(p, SLABSIZE); + unsigned h = s->iHeader; + HEAP_ASSERT(SlabHeaderUsedm4(h) != 0x3fC); // slab is empty already + HEAP_ASSERT((pos-sizeof(slabhdr))%SlabHeaderSize(h) == 0); + *(unsigned char*)p = (unsigned char)h; + h &= ~0xFF; + h |= (pos>>2); + unsigned size = h & 0x3C000; + if (int(h) >= 0) + { + h -= size<<6; + if (int(h)>=0) + { + s->iHeader = h; + return; + } + FreeSlab(s); + return; + } + h -= size<<6; + h &= ~FLOATING_BIT; + s->iHeader = h; + slab** full = s->iParent; // remove from full list + slab* c = s->iChild1; + *full = c; + if (c) + c->iParent = full; + + slabset& ss = iSlabAlloc[iSizeMap[size>>14]]; + TreeInsert(s,&ss.iPartial); + CHECKTREE(&ss.iPartial); +} + +void* RHybridHeap::InitNewSlab(slabset& allocator, slab* s) +// +// initialise an empty slab for this allocator and return the fist cell +// pre-condition: the slabset has no iPartial iSlabs for allocation +// +{ + HEAP_ASSERT(allocator.iPartial==0); + TInt size = 4 + ((&allocator-&iSlabAlloc[0])<<2); // infer size from slab allocator address + unsigned h = s->iHeader & 0xF00; // preserve pagemap only + h |= (size<<12); // set size + h |= (size-4)<<18; // set usedminus4 to one object minus 4 + s->iHeader = h; + allocator.iPartial = s; + s->iParent = &allocator.iPartial; + s->iChild1 = s->iChild2 = 0; + return Offset(s,sizeof(slabhdr)); +} + +const unsigned char slab_bitcount[16] = {0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}; + +const unsigned char slab_ext_frag[16] = +{ + 0, + 16 + (1008 % 4), + 16 + (1008 % 8), + 16 + (1008 % 12), + 16 + (1008 % 16), + 16 + (1008 % 20), + 16 + (1008 % 24), + 16 + (1008 % 28), + 16 + (1008 % 32), + 16 + (1008 % 36), + 16 + (1008 % 40), + 16 + (1008 % 44), + 16 + (1008 % 48), + 16 + (1008 % 52), + 16 + (1008 % 56), + 16 + (1008 % 60) +}; + +void RHybridHeap::TreeWalk(slab* const* root, void (*f)(slab*, struct HeapInfo*, SWalkInfo*), struct HeapInfo* i, SWalkInfo* wi) +{ + // iterative walk around the tree at root + + slab* s = *root; + if (!s) + return; + + for (;;) + { + slab* c; + while ((c = s->iChild1) != 0) + s = c; // walk down left side to end + for (;;) + { + f(s, i, wi); + c = s->iChild2; + if (c) + { // one step down right side, now try and walk down left + s = c; + break; + } + for (;;) + { // loop to walk up right side + slab** pp = s->iParent; + if (pp == root) + return; + s = slab::SlabFor(pp); + if (pp == &s->iChild1) + break; + } + } + } +} + +void RHybridHeap::SlabEmptyInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi) +{ + Walk(wi, s, SLABSIZE, EGoodFreeCell, EEmptySlab); // Introduce an empty slab to the walk function + int nslab = slab_bitcount[SlabHeaderPagemap(page::PageFor(s)->iSlabs[0].iHeader)]; + i->iFreeN += nslab; + i->iFreeBytes += nslab << SLABSHIFT; +} + +void RHybridHeap::SlabPartialInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi) +{ + Walk(wi, s, SLABSIZE, EGoodAllocatedCell, EPartialFullSlab); // Introduce a full slab to the walk function + unsigned h = s->iHeader; + unsigned used = SlabHeaderUsedm4(h)+4; + unsigned size = SlabHeaderSize(h); + unsigned free = 1024 - slab_ext_frag[size>>2] - used; + i->iFreeN += (free/size); + i->iFreeBytes += free; + i->iAllocN += (used/size); + i->iAllocBytes += used; +} + +void RHybridHeap::SlabFullInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi) +{ + Walk(wi, s, SLABSIZE, EGoodAllocatedCell, EFullSlab); // Introduce a full slab to the walk function + unsigned h = s->iHeader; + unsigned used = SlabHeaderUsedm4(h)+4; + unsigned size = SlabHeaderSize(h); + HEAP_ASSERT(1024 - slab_ext_frag[size>>2] - used == 0); + i->iAllocN += (used/size); + i->iAllocBytes += used; +} + +void RHybridHeap::SlabInfo(struct HeapInfo* i, SWalkInfo* wi) const +{ + if (iSparePage) + { + i->iFreeBytes += iPageSize; + i->iFreeN = 4; + Walk(wi, iSparePage, iPageSize, EGoodFreeCell, ESlabSpare); // Introduce Slab spare page to the walk function + } + TreeWalk(&iFullSlab, &SlabFullInfo, i, wi); + for (int ix = 0; ix < (MAXSLABSIZE>>2); ++ix) + TreeWalk(&iSlabAlloc[ix].iPartial, &SlabPartialInfo, i, wi); + TreeWalk(&iPartialPage, &SlabEmptyInfo, i, wi); +} + + +// +// Bitmap class implementation for large page allocator +// +inline unsigned char* paged_bitmap::Addr() const {return iBase;} +inline unsigned paged_bitmap::Size() const {return iNbits;} +// + +void paged_bitmap::Init(unsigned char* p, unsigned size, unsigned bit) +{ + iBase = p; + iNbits=size; + int bytes=Ceiling(size,8)>>3; + memset(p,bit?0xff:0,bytes); +} + +inline void paged_bitmap::Set(unsigned ix, unsigned bit) +{ + if (bit) + iBase[ix>>3] |= (1<<(ix&7)); + else + iBase[ix>>3] &= ~(1<<(ix&7)); +} + +inline unsigned paged_bitmap::operator[](unsigned ix) const +{ + return 1U&(iBase[ix>>3] >> (ix&7)); +} + +void paged_bitmap::Setn(unsigned ix, unsigned len, unsigned bit) +{ + int l=len; + while (--l>=0) + Set(ix++,bit); +} + +void paged_bitmap::Set(unsigned ix, unsigned len, unsigned val) +{ + int l=len; + while (--l>=0) + { + Set(ix++,val&1); + val>>=1; + } +} + +unsigned paged_bitmap::Bits(unsigned ix, unsigned len) const +{ + int l=len; + unsigned val=0; + unsigned bit=0; + while (--l>=0) + val |= (*this)[ix++]< iNbits) + return false; + for (;;) + { + if ((*this)[ix] != bit) + return false; + if (++ix==i2) + return true; + } +} + +int paged_bitmap::Find(unsigned start, unsigned bit) const +{ + if (start 0) + { + if (aPagePower < MINPAGEPOWER) + aPagePower = MINPAGEPOWER; + } + else aPagePower = 31; + + iPageThreshold = aPagePower; + /*------------------------------------------------------------- + * Initialize page bitmap + *-------------------------------------------------------------*/ + iPageMap.Init((unsigned char*)&iBitMapBuffer, MAXSMALLPAGEBITS, 0); +} + +void* RHybridHeap::PagedAllocate(unsigned size) +{ + TInt nbytes = Ceiling(size, iPageSize); + void* p = Map(0, nbytes); + if (!p) + return 0; + if (!PagedSetSize(p, nbytes)) + { + Unmap(p, nbytes); + return 0; + } + return p; +} + +void* RHybridHeap::PagedReallocate(void* p, unsigned size, TInt mode) +{ + + HEAP_ASSERT(Ceiling(p, iPageSize) == p); + unsigned nbytes = Ceiling(size, iPageSize); + + unsigned osize = PagedSize(p); + if ( nbytes == 0 ) // Special case to handle shrinking below min page threshold + nbytes = Min((1 << MINPAGEPOWER), osize); + + if (osize == nbytes) + return p; + + if (nbytes < osize) + { // shrink in place, unmap final pages and rewrite the pagemap + Unmap(Offset(p, nbytes), osize-nbytes); + // zap old code and then write new code (will not fail) + PagedZapSize(p, osize); + + TBool check = PagedSetSize(p, nbytes); + __ASSERT_ALWAYS(check, HEAP_PANIC(ETHeapBadCellAddress)); + + return p; + } + + // nbytes > osize + // try and extend current region first + + void* newp = Map(Offset(p, osize), nbytes-osize); + if (newp) + { // In place growth. Possibility that pagemap may have to grow AND then fails + if (!PagedSetSize(p, nbytes)) + { // must release extra mapping + Unmap(Offset(p, osize), nbytes-osize); + return 0; + } + // if successful, the new length code will have overwritten the old one (it is at least as long) + return p; + } + + // fallback to allocate/copy/free + if (mode & ENeverMove) + return 0; // not allowed to move cell + + newp = PagedAllocate(nbytes); + if (!newp) + return 0; + memcpy(newp, p, osize); + PagedFree(p); + return newp; +} + +void RHybridHeap::PagedFree(void* p) +{ + HEAP_ASSERT(Ceiling(p, iPageSize) == p); + + + unsigned size = PagedSize(p); + + PagedZapSize(p, size); // clear page map + Unmap(p, size); +} + +void RHybridHeap::PagedInfo(struct HeapInfo* i, SWalkInfo* wi) const +{ + for (int ix = 0;(ix = iPageMap.Find(ix,1)) >= 0;) + { + int npage = PagedDecode(ix); + // Introduce paged buffer to the walk function + TAny* bfr = Bitmap2addr(ix); + int len = npage << PAGESHIFT; + if ( len > iPageSize ) + { // If buffer is not larger than one page it must be a slab page mapped into bitmap + i->iAllocBytes += len; + ++i->iAllocN; + Walk(wi, bfr, len, EGoodAllocatedCell, EPageAllocator); + } + ix += (npage<<1); + } +} + +void RHybridHeap::ResetBitmap() +/*--------------------------------------------------------- + * Go through paged_bitmap and unmap all buffers to system + * This method is called from RHybridHeap::Reset() to unmap all page + * allocated - and slab pages which are stored in bitmap, too + *---------------------------------------------------------*/ +{ + unsigned iNbits = iPageMap.Size(); + if ( iNbits ) + { + for (int ix = 0;(ix = iPageMap.Find(ix,1)) >= 0;) + { + int npage = PagedDecode(ix); + void* p = Bitmap2addr(ix); + unsigned size = PagedSize(p); + PagedZapSize(p, size); // clear page map + Unmap(p, size); + ix += (npage<<1); + } + if ( (TInt)iNbits > MAXSMALLPAGEBITS ) + { + // unmap page reserved for enlarged bitmap + Unmap(iPageMap.Addr(), (iNbits >> 3) ); + } + } +} + +TBool RHybridHeap::CheckBitmap(void* aBfr, TInt aSize, TUint32& aDummy, TInt& aNPages) +/*--------------------------------------------------------- + * If aBfr = NULL + * Go through paged_bitmap and unmap all buffers to system + * and assure that by reading the first word of each page of aBfr + * that aBfr is still accessible + * else + * Assure that specified buffer is mapped with correct length in + * page map + *---------------------------------------------------------*/ +{ + TBool ret; + if ( aBfr ) + { + __ASSERT_ALWAYS((Ceiling(aBfr, iPageSize) == aBfr), HEAP_PANIC(ETHeapBadCellAddress)); + ret = ( aSize == (TInt)PagedSize(aBfr)); + } + else + { + ret = ETrue; + unsigned iNbits = iPageMap.Size(); + if ( iNbits ) + { + TInt npage; + aNPages = 0; + for (int ix = 0;(ix = iPageMap.Find(ix,1)) >= 0;) + { + npage = PagedDecode(ix); + aNPages += npage; + void* p = Bitmap2addr(ix); + __ASSERT_ALWAYS((Ceiling(p, iPageSize) == p), HEAP_PANIC(ETHeapBadCellAddress)); + unsigned s = PagedSize(p); + __ASSERT_ALWAYS((Ceiling(s, iPageSize) == s), HEAP_PANIC(ETHeapBadCellAddress)); + while ( s ) + { + aDummy += *(TUint32*)((TUint8*)p + (s-iPageSize)); + s -= iPageSize; + } + ix += (npage<<1); + } + if ( (TInt)iNbits > MAXSMALLPAGEBITS ) + { + // add enlarged bitmap page(s) to total page count + npage = (iNbits >> 3); + __ASSERT_ALWAYS((Ceiling(npage, iPageSize) == npage), HEAP_PANIC(ETHeapBadCellAddress)); + aNPages += (npage / iPageSize); + } + } + } + + return ret; +} + + +// The paged allocations are tracked in a bitmap which has 2 bits per page +// this allows us to store allocations as small as 4KB +// The presence and size of an allocation is encoded as follows: +// let N = number of pages in the allocation, then +// 10 : N = 1 // 4KB +// 110n : N = 2 + n // 8-12KB +// 1110nnnn : N = nnnn // 16-60KB +// 1111n[18] : N = n[18] // 64KB-1GB + +const struct etab { unsigned char offset, len, codelen, code;} encode_table[] = +{ + {1,2,2,0x1}, + {2,4,3,0x3}, + {0,8,4,0x7}, + {0,22,4,0xf} +}; + +// Return code length for specified allocation Size(assumed to be aligned to pages) +inline unsigned paged_codelen(unsigned size, unsigned pagesz) +{ + HEAP_ASSERT(size == Ceiling(size, pagesz)); + + if (size == pagesz) + return 2; + else if (size < 4*pagesz) + return 4; + else if (size < 16*pagesz) + return 8; + else + return 22; +} + +inline const etab& paged_coding(unsigned npage) +{ + if (npage < 4) + return encode_table[npage>>1]; + else if (npage < 16) + return encode_table[2]; + else + return encode_table[3]; +} + +bool RHybridHeap::PagedEncode(unsigned pos, unsigned npage) +{ + const etab& e = paged_coding(npage); + if (pos + e.len > iPageMap.Size()) + { + // need to grow the page bitmap to fit the cell length into the map + // if we outgrow original bitmap buffer in RHybridHeap metadata, then just get enough pages to cover the full space: + // * initial 68 byte bitmap mapped (68*8*4kB):2 = 1,1MB + // * 4KB can Map(4096*8*4kB):2 = 64MB + unsigned maxsize = Ceiling(iMaxLength, iPageSize); + unsigned mapbits = maxsize >> (PAGESHIFT-1); + maxsize = Ceiling(mapbits>>3, iPageSize); + void* newb = Map(0, maxsize); + if (!newb) + return false; + + unsigned char* oldb = iPageMap.Addr(); + iPageMap.Init((unsigned char*)newb, (maxsize<<3), 0); + memcpy(newb, oldb, Ceiling(MAXSMALLPAGEBITS,8)>>3); + } + // encode the allocation block size into the bitmap, starting at the bit for the start page + unsigned bits = e.code; + bits |= (npage - e.offset) << e.codelen; + iPageMap.Set(pos, e.len, bits); + return true; +} + +unsigned RHybridHeap::PagedDecode(unsigned pos) const +{ + __ASSERT_ALWAYS(pos + 2 <= iPageMap.Size(), HEAP_PANIC(ETHeapBadCellAddress)); + + unsigned bits = iPageMap.Bits(pos,2); + __ASSERT_ALWAYS(bits & 1, HEAP_PANIC(ETHeapBadCellAddress)); + bits >>= 1; + if (bits == 0) + return 1; + __ASSERT_ALWAYS(pos + 4 <= iPageMap.Size(), HEAP_PANIC(ETHeapBadCellAddress)); + bits = iPageMap.Bits(pos+2,2); + if ((bits & 1) == 0) + return 2 + (bits>>1); + else if ((bits>>1) == 0) + { + __ASSERT_ALWAYS(pos + 8 <= iPageMap.Size(), HEAP_PANIC(ETHeapBadCellAddress)); + return iPageMap.Bits(pos+4, 4); + } + else + { + __ASSERT_ALWAYS(pos + 22 <= iPageMap.Size(), HEAP_PANIC(ETHeapBadCellAddress)); + return iPageMap.Bits(pos+4, 18); + } +} + +inline void RHybridHeap::PagedZapSize(void* p, unsigned size) +{iPageMap.Setn(PtrDiff(p, iMemBase) >> (PAGESHIFT-1), paged_codelen(size, iPageSize) ,0);} + +inline unsigned RHybridHeap::PagedSize(void* p) const + { return PagedDecode(PtrDiff(p, iMemBase) >> (PAGESHIFT-1)) << PAGESHIFT; } + +inline bool RHybridHeap::PagedSetSize(void* p, unsigned size) +{ return PagedEncode(PtrDiff(p, iMemBase) >> (PAGESHIFT-1), size >> PAGESHIFT); } + +inline void* RHybridHeap::Bitmap2addr(unsigned pos) const + { return iMemBase + (1 << (PAGESHIFT-1))*pos; } + + +////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// +/** +Constructor where minimum and maximum length of the heap can be defined. +It defaults the chunk heap to be created to have use a new local chunk, +to have a grow by value of KMinHeapGrowBy, to be unaligned, not to be +single threaded and not to have any mode flags set. + +@param aMinLength The minimum length of the heap to be created. +@param aMaxLength The maximum length to which the heap to be created can grow. + If the supplied value is less than a page size, then it + is discarded and the page size is used instead. +*/ +EXPORT_C TChunkHeapCreateInfo::TChunkHeapCreateInfo(TInt aMinLength, TInt aMaxLength) : + iVersionNumber(EVersion0), iMinLength(aMinLength), iMaxLength(aMaxLength), +iAlign(0), iGrowBy(1), iSingleThread(EFalse), +iOffset(0), iPaging(EUnspecified), iMode(0), iName(NULL) +{ +} + + +/** +Sets the chunk heap to create a new chunk with the specified name. + +This overriddes any previous call to TChunkHeapCreateInfo::SetNewChunkHeap() or +TChunkHeapCreateInfo::SetExistingChunkHeap() for this TChunkHeapCreateInfo object. + +@param aName The name to be given to the chunk heap to be created +If NULL, the function constructs a local chunk to host the heap. +If not NULL, a pointer to a descriptor containing the name to be +assigned to the global chunk hosting the heap. +*/ +EXPORT_C void TChunkHeapCreateInfo::SetCreateChunk(const TDesC* aName) +{ + iName = (TDesC*)aName; + iChunk.SetHandle(KNullHandle); +} + + +/** +Sets the chunk heap to be created to use the chunk specified. + +This overriddes any previous call to TChunkHeapCreateInfo::SetNewChunkHeap() or +TChunkHeapCreateInfo::SetExistingChunkHeap() for this TChunkHeapCreateInfo object. + +@param aChunk A handle to the chunk to use for the heap. +*/ +EXPORT_C void TChunkHeapCreateInfo::SetUseChunk(const RChunk aChunk) +{ + iName = NULL; + iChunk = aChunk; +} + +EXPORT_C RHeap* UserHeap::FixedHeap(TAny* aBase, TInt aMaxLength, TInt aAlign, TBool aSingleThread) +/** +Creates a fixed length heap at a specified location. + +On successful return from this function, the heap is ready to use. This assumes that +the memory pointed to by aBase is mapped and able to be used. You must ensure that you +pass in a large enough value for aMaxLength. Passing in a value that is too small to +hold the metadata for the heap (~1 KB) will result in the size being rounded up and the +heap thereby running over the end of the memory assigned to it. But then if you were to +pass in such as small value then you would not be able to do any allocations from the +heap anyway. Moral of the story: Use a sensible value for aMaxLength! + +@param aBase A pointer to the location where the heap is to be constructed. +@param aMaxLength The maximum length in bytes to which the heap can grow. If the + supplied value is too small to hold the heap's metadata, it + will be increased. +@param aAlign From Symbian^4 onwards, this value is ignored but EABI 8 + byte alignment is guaranteed for all allocations 8 bytes or + more in size. 4 byte allocations will be aligned to a 4 + byte boundary. Best to pass in zero. +@param aSingleThread EFalse if the heap is to be accessed from multiple threads. + This will cause internal locks to be created, guaranteeing + thread safety. + +@return A pointer to the new heap, or NULL if the heap could not be created. + +@panic USER 56 if aMaxLength is negative. +*/ +{ + __ASSERT_ALWAYS( aMaxLength>=0, ::Panic(ETHeapMaxLengthNegative)); + if ( aMaxLength < (TInt)sizeof(RHybridHeap) ) + aMaxLength = sizeof(RHybridHeap); + + RHybridHeap* h = new(aBase) RHybridHeap(aMaxLength, aAlign, aSingleThread); + + if (!aSingleThread) + { + TInt r = h->iLock.CreateLocal(); + if (r!=KErrNone) + return NULL; // No need to delete the RHybridHeap instance as the new above is only a placement new + h->iHandles = (TInt*)&h->iLock; + h->iHandleCount = 1; + } + return h; +} + +/** +Creates a chunk heap of the type specified by the parameter aCreateInfo. + +@param aCreateInfo A reference to a TChunkHeapCreateInfo object specifying the +type of chunk heap to create. + +@return A pointer to the new heap or NULL if the heap could not be created. + +@panic USER 41 if the heap's specified minimum length is greater than the specified maximum length. +@panic USER 55 if the heap's specified minimum length is negative. +@panic USER 172 if the heap's specified alignment is not a power of 2 or is less than the size of a TAny*. +*/ +EXPORT_C RHeap* UserHeap::ChunkHeap(const TChunkHeapCreateInfo& aCreateInfo) +{ + // aCreateInfo must have been configured to use a new chunk or an exiting chunk. + __ASSERT_ALWAYS(!(aCreateInfo.iMode & (TUint32)~EChunkHeapMask), ::Panic(EHeapCreateInvalidMode)); + RHeap* h = NULL; + + if (aCreateInfo.iChunk.Handle() == KNullHandle) + { + // A new chunk is to be created for this heap. + + __ASSERT_ALWAYS(aCreateInfo.iMinLength >= 0, ::Panic(ETHeapMinLengthNegative)); + __ASSERT_ALWAYS(aCreateInfo.iMaxLength >= aCreateInfo.iMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); + + TInt maxLength = aCreateInfo.iMaxLength; + TInt page_size; + GET_PAGE_SIZE(page_size); + + if (maxLength < page_size) + maxLength = page_size; + + TChunkCreateInfo chunkInfo; +#if USE_HYBRID_HEAP + if ( aCreateInfo.iOffset ) + chunkInfo.SetNormal(0, maxLength); // Create DL only heap + else + { + maxLength = 2*maxLength; + chunkInfo.SetDisconnected(0, 0, maxLength); // Create hybrid heap + } +#else + chunkInfo.SetNormal(0, maxLength); // Create DL only heap +#endif + chunkInfo.SetOwner((aCreateInfo.iSingleThread)? EOwnerThread : EOwnerProcess); + if (aCreateInfo.iName) + chunkInfo.SetGlobal(*aCreateInfo.iName); + // Set the paging attributes of the chunk. + if (aCreateInfo.iPaging == TChunkHeapCreateInfo::EPaged) + chunkInfo.SetPaging(TChunkCreateInfo::EPaged); + if (aCreateInfo.iPaging == TChunkHeapCreateInfo::EUnpaged) + chunkInfo.SetPaging(TChunkCreateInfo::EUnpaged); + // Create the chunk. + RChunk chunk; + if (chunk.Create(chunkInfo) != KErrNone) + return NULL; + // Create the heap using the new chunk. + TUint mode = aCreateInfo.iMode | EChunkHeapDuplicate; // Must duplicate the handle. + h = OffsetChunkHeap(chunk, aCreateInfo.iMinLength, aCreateInfo.iOffset, + aCreateInfo.iGrowBy, maxLength, aCreateInfo.iAlign, + aCreateInfo.iSingleThread, mode); + chunk.Close(); + } + else + { + h = OffsetChunkHeap(aCreateInfo.iChunk, aCreateInfo.iMinLength, aCreateInfo.iOffset, + aCreateInfo.iGrowBy, aCreateInfo.iMaxLength, aCreateInfo.iAlign, + aCreateInfo.iSingleThread, aCreateInfo.iMode); + } + return h; +} + + + +EXPORT_C RHeap* UserHeap::ChunkHeap(const TDesC* aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread) +/** +Creates a heap in a local or global chunk. + +The chunk hosting the heap can be local or global. + +A local chunk is one which is private to the process creating it and is not +intended for access by other user processes. A global chunk is one which is +visible to all processes. + +The hosting chunk is local, if the pointer aName is NULL, otherwise the +hosting chunk is global and the descriptor *aName is assumed to contain +the name to be assigned to it. + +Ownership of the host chunk is vested in the current process. + +A minimum and a maximum size for the heap can be specified. On successful +return from this function, the size of the heap is at least aMinLength. +If subsequent requests for allocation of memory from the heap cannot be +satisfied by compressing the heap, the size of the heap is extended in +increments of aGrowBy until the request can be satisfied. Attempts to extend +the heap causes the size of the host chunk to be adjusted. + +Note that the size of the heap cannot be adjusted by more than aMaxLength. + +@param aName If NULL, the function constructs a local chunk to host + the heap. If not NULL, a pointer to a descriptor containing + the name to be assigned to the global chunk hosting the heap. +@param aMinLength The minimum length of the heap in bytes. This will be + rounded up to the nearest page size by the allocator. +@param aMaxLength The maximum length in bytes to which the heap can grow. This + will be rounded up to the nearest page size by the allocator. +@param aGrowBy The number of bytes by which the heap will grow when more + memory is required. This will be rounded up to the nearest + page size by the allocator. If a value is not explicitly + specified, the page size is taken by default. +@param aAlign From Symbian^4 onwards, this value is ignored but EABI 8 + byte alignment is guaranteed for all allocations 8 bytes or + more in size. 4 byte allocations will be aligned to a 4 + byte boundary. Best to pass in zero. +@param aSingleThread EFalse if the heap is to be accessed from multiple threads. + This will cause internal locks to be created, guaranteeing + thread safety. + +@return A pointer to the new heap or NULL if the heap could not be created. + +@panic USER 41 if aMaxLength is < aMinLength. +@panic USER 55 if aMinLength is negative. +@panic USER 56 if aMaxLength is negative. +*/ + { + TInt page_size; + GET_PAGE_SIZE(page_size); + TInt minLength = _ALIGN_UP(aMinLength, page_size); + TInt maxLength = Max(aMaxLength, minLength); + + TChunkHeapCreateInfo createInfo(minLength, maxLength); + createInfo.SetCreateChunk(aName); + createInfo.SetGrowBy(aGrowBy); + createInfo.SetAlignment(aAlign); + createInfo.SetSingleThread(aSingleThread); + + return ChunkHeap(createInfo); + } + +EXPORT_C RHeap* UserHeap::ChunkHeap(RChunk aChunk, TInt aMinLength, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode) +/** +Creates a heap in an existing chunk. + +This function is intended to be used to create a heap in a user writable code +chunk as created by a call to RChunk::CreateLocalCode(). This type of heap can +be used to hold code fragments from a JIT compiler. + +@param aChunk The chunk that will host the heap. +@param aMinLength The minimum length of the heap in bytes. This will be + rounded up to the nearest page size by the allocator. +@param aGrowBy The number of bytes by which the heap will grow when more + memory is required. This will be rounded up to the nearest + page size by the allocator. If a value is not explicitly + specified, the page size is taken by default. +@param aMaxLength The maximum length in bytes to which the heap can grow. This + will be rounded up to the nearest page size by the allocator. + If 0 is passed in, the maximum lengt of the chunk is used. +@param aAlign From Symbian^4 onwards, this value is ignored but EABI 8 + byte alignment is guaranteed for all allocations 8 bytes or + more in size. 4 byte allocations will be aligned to a 4 + byte boundary. Best to pass in zero. +@param aSingleThread EFalse if the heap is to be accessed from multiple threads. + This will cause internal locks to be created, guaranteeing + thread safety. +@param aMode Flags controlling the heap creation. See RAllocator::TFlags. + +@return A pointer to the new heap or NULL if the heap could not be created. + +@see UserHeap::OffsetChunkHeap() +*/ + { + return OffsetChunkHeap(aChunk, aMinLength, 0, aGrowBy, aMaxLength, aAlign, aSingleThread, aMode); + } + +EXPORT_C RHeap* UserHeap::OffsetChunkHeap(RChunk aChunk, TInt aMinLength, TInt aOffset, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode) +/** +Creates a heap in an existing chunk, offset from the beginning of the chunk. + +This function is intended to be used to create a heap using a chunk which has +some of its memory already used, at the start of that that chunk. The maximum +length to which the heap can grow is the maximum size of the chunk, minus the +data at the start of the chunk. + +The offset at which to create the heap is passed in as the aOffset parameter. +Legacy heap implementations always respected the aOffset value, however more +modern heap implementations are more sophisticated and cannot necessarily respect +this value. Therefore, if possible, you should always use an aOffset of 0 unless +you have a very explicit requirement for using a non zero value. Using a non zero +value will result in a less efficient heap algorithm being used in order to respect +the offset. + +Another issue to consider when using this function is the type of the chunk passed +in. In order for the most efficient heap algorithms to be used, the chunk passed +in should always be a disconnected chunk. Passing in a non disconnected chunk will +again result in a less efficient heap algorithm being used. + +Finally, another requirement for the most efficient heap algorithms to be used is +for the heap to be able to expand. Therefore, unless you have a specific reason to +do so, always specify aMaxLength > aMinLength. + +So, if possible, use aOffset == zero, aMaxLength > aMinLength and a disconnected +chunk for best results! + +@param aChunk The chunk that will host the heap. +@param aMinLength The minimum length of the heap in bytes. This will be + rounded up to the nearest page size by the allocator. +@param aOffset The offset in bytes from the start of the chunk at which to + create the heap. If used (and it shouldn't really be!) + then it will be rounded up to a multiple of 8, to respect + EABI 8 byte alignment requirements. +@param aGrowBy The number of bytes by which the heap will grow when more + memory is required. This will be rounded up to the nearest + page size by the allocator. If a value is not explicitly + specified, the page size is taken by default. +@param aMaxLength The maximum length in bytes to which the heap can grow. This + will be rounded up to the nearest page size by the allocator. + If 0 is passed in, the maximum length of the chunk is used. +@param aAlign From Symbian^4 onwards, this value is ignored but EABI 8 + byte alignment is guaranteed for all allocations 8 bytes or + more in size. 4 byte allocations will be aligned to a 4 + byte boundary. Best to pass in zero. +@param aSingleThread EFalse if the heap is to be accessed from multiple threads. + This will cause internal locks to be created, guaranteeing + thread safety. +@param aMode Flags controlling the heap creation. See RAllocator::TFlags. + +@return A pointer to the new heap or NULL if the heap could not be created. + +@panic USER 41 if aMaxLength is < aMinLength. +@panic USER 55 if aMinLength is negative. +@panic USER 56 if aMaxLength is negative. +@panic USER 168 if aOffset is negative. +*/ + { + TBool dlOnly = EFalse; + TInt pageSize; + GET_PAGE_SIZE(pageSize); + TInt align = RHybridHeap::ECellAlignment; // Always use EABI 8 byte alignment + + __ASSERT_ALWAYS(aMinLength>=0, ::Panic(ETHeapMinLengthNegative)); + __ASSERT_ALWAYS(aMaxLength>=0, ::Panic(ETHeapMaxLengthNegative)); + + if ( aMaxLength > 0 ) + __ASSERT_ALWAYS(aMaxLength>=aMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); + + // Stick to EABI alignment for the start offset, if any + aOffset = _ALIGN_UP(aOffset, align); + + // Using an aOffset > 0 means that we can't use the hybrid allocator and have to revert to Doug Lea only + if (aOffset > 0) + dlOnly = ETrue; + + // Ensure that the minimum length is enough to hold the RHybridHeap object itself + TInt minCell = _ALIGN_UP(Max((TInt)RHybridHeap::EAllocCellSize, (TInt)RHybridHeap::EFreeCellSize), align); + TInt hybridHeapSize = (sizeof(RHybridHeap) + minCell); + if (aMinLength < hybridHeapSize) + aMinLength = hybridHeapSize; + + // Round the minimum length up to a multiple of the page size, taking into account that the + // offset takes up a part of the chunk's memory + aMinLength = _ALIGN_UP((aMinLength + aOffset), pageSize); + + // If aMaxLength is 0 then use the entire chunk + TInt chunkSize = aChunk.MaxSize(); + if (aMaxLength == 0) + { + aMaxLength = chunkSize; + } + // Otherwise round the maximum length up to a multiple of the page size, taking into account that + // the offset takes up a part of the chunk's memory. We also clip the maximum length to the chunk + // size, so the user may get a little less than requested if the chunk size is not large enough + else + { + aMaxLength = _ALIGN_UP((aMaxLength + aOffset), pageSize); + if (aMaxLength > chunkSize) + aMaxLength = chunkSize; + } + + // If the rounded up values don't make sense then a crazy aMinLength or aOffset must have been passed + // in, so fail the heap creation + if (aMinLength > aMaxLength) + return NULL; + + // Adding the offset into the minimum and maximum length was only necessary for ensuring a good fit of + // the heap into the chunk. Re-adjust them now back to non offset relative sizes + aMinLength -= aOffset; + aMaxLength -= aOffset; + + // If we are still creating the hybrid allocator (call parameter + // aOffset is 0 and aMaxLength > aMinLength), we must reduce heap + // aMaxLength size to the value aMaxLength/2 and set the aOffset to point in the middle of chunk. + TInt offset = aOffset; + TInt maxLength = aMaxLength; + if (!dlOnly && (aMaxLength > aMinLength)) + maxLength = offset = _ALIGN_UP(aMaxLength >> 1, pageSize); + + // Try to use commit to map aMinLength physical memory for the heap, taking into account the offset. If + // the operation fails, suppose that the chunk is not a disconnected heap and try to map physical memory + // with adjust. In this case, we also can't use the hybrid allocator and have to revert to Doug Lea only + TBool useAdjust = EFalse; + TInt r = aChunk.Commit(offset, aMinLength); + if (r == KErrGeneral) + { + dlOnly = useAdjust = ETrue; + r = aChunk.Adjust(aMinLength); + if (r != KErrNone) + return NULL; + } + else if (r == KErrNone) + { + // We have a disconnected chunk reset aOffset and aMaxlength + aOffset = offset; + aMaxLength = maxLength; + } + + else + return NULL; + + // Parameters have been mostly verified and we know whether to use the hybrid allocator or Doug Lea only. The + // constructor for the hybrid heap will automatically drop back to Doug Lea if it determines that aMinLength + // == aMaxLength, so no need to worry about that requirement here. The user specified alignment is not used but + // is passed in so that it can be sanity checked in case the user is doing something totally crazy with it + RHybridHeap* h = new (aChunk.Base() + aOffset) RHybridHeap(aChunk.Handle(), aOffset, aMinLength, aMaxLength, + aGrowBy, aAlign, aSingleThread, dlOnly, useAdjust); + + if (h->ConstructLock(aMode) != KErrNone) + return NULL; + + // Return the heap address + return h; + } + +#define UserTestDebugMaskBit(bit) (TBool)(UserSvr::DebugMask(bit>>5) & (1<<(bit&31))) + +_LIT(KLitDollarHeap,"$HEAP"); +EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap*& aHeap, TInt aAlign, TBool aSingleThread) +/** +@internalComponent +*/ +// +// Create a user-side heap +// +{ + TInt page_size; + GET_PAGE_SIZE(page_size); + TInt minLength = _ALIGN_UP(aInfo.iHeapInitialSize, page_size); + TInt maxLength = Max(aInfo.iHeapMaxSize, minLength); + if (UserTestDebugMaskBit(96)) // 96 == KUSERHEAPTRACE in nk_trace.h + aInfo.iFlags |= ETraceHeapAllocs; + // Create the thread's heap chunk. + RChunk c; + TChunkCreateInfo createInfo; + + createInfo.SetThreadHeap(0, maxLength, KLitDollarHeap()); // Initialise with no memory committed. +#if USE_HYBRID_HEAP + // + // Create disconnected chunk for hybrid heap with double max length value + // + maxLength = 2*maxLength; + createInfo.SetDisconnected(0, 0, maxLength); +#endif + // Set the paging policy of the heap chunk based on the thread's paging policy. + TUint pagingflags = aInfo.iFlags & EThreadCreateFlagPagingMask; + switch (pagingflags) + { + case EThreadCreateFlagPaged: + createInfo.SetPaging(TChunkCreateInfo::EPaged); + break; + case EThreadCreateFlagUnpaged: + createInfo.SetPaging(TChunkCreateInfo::EUnpaged); + break; + case EThreadCreateFlagPagingUnspec: + // Leave the chunk paging policy unspecified so the process's + // paging policy is used. + break; + } + + TInt r = c.Create(createInfo); + if (r!=KErrNone) + return r; + + aHeap = ChunkHeap(c, minLength, page_size, maxLength, aAlign, aSingleThread, EChunkHeapSwitchTo|EChunkHeapDuplicate); + c.Close(); + + if ( !aHeap ) + return KErrNoMemory; + + if (aInfo.iFlags & ETraceHeapAllocs) + { + aHeap->iFlags |= RHeap::ETraceAllocs; + BTraceContext8(BTrace::EHeap, BTrace::EHeapCreate,(TUint32)aHeap, RHybridHeap::EAllocCellSize); + TInt chunkId = ((RHandleBase&)((RHybridHeap*)aHeap)->iChunkHandle).BTraceId(); + BTraceContext8(BTrace::EHeap, BTrace::EHeapChunkCreate, (TUint32)aHeap, chunkId); + } + if (aInfo.iFlags & EMonitorHeapMemory) + aHeap->iFlags |= RHeap::EMonitorMemory; + + return KErrNone; +} + +#endif // __KERNEL_MODE__ + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ diff --git a/src/corelib/arch/symbian/heap_hybrid_p.h b/src/corelib/arch/symbian/heap_hybrid_p.h new file mode 100644 index 0000000..bb6fd31 --- /dev/null +++ b/src/corelib/arch/symbian/heap_hybrid_p.h @@ -0,0 +1,391 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __HEAP_HYBRID_H__ +#define __HEAP_HYBRID_H__ + +#include + +#ifdef __WINS__ +#define USE_HYBRID_HEAP 0 +#else +#define USE_HYBRID_HEAP 1 +#endif + +// This stuff is all temporary in order to prevent having to include dla.h from heap_hybrid.h, which causes +// problems due to its definition of size_t (and possibly other types). This is unfortunate but we cannot +// pollute the namespace with these types or it will cause problems with Open C and other POSIX compatibility +// efforts in Symbian + +#define NSMALLBINS (32U) +#define NTREEBINS (32U) + +#ifndef MALLOC_ALIGNMENT + #define MALLOC_ALIGNMENT ((TUint)8U) +#endif /* MALLOC_ALIGNMENT */ + +#define CHUNK_OVERHEAD (sizeof(TUint)) + +typedef unsigned int bindex_t; +typedef unsigned int binmap_t; +typedef struct malloc_chunk* mchunkptr; +typedef struct malloc_segment msegment; +typedef struct malloc_state* mstate; +typedef struct malloc_tree_chunk* tbinptr; +typedef struct malloc_tree_chunk* tchunkptr; + +struct malloc_segment { + TUint8* iBase; /* base address */ + TUint iSize; /* allocated size */ +}; + +struct malloc_state { + binmap_t iSmallMap; + binmap_t iTreeMap; + TUint iDvSize; + TUint iTopSize; + mchunkptr iDv; + mchunkptr iTop; + TUint iTrimCheck; + mchunkptr iSmallBins[(NSMALLBINS+1)*2]; + tbinptr iTreeBins[NTREEBINS]; + msegment iSeg; + }; + +class RHybridHeap : public RHeap + { + +public: +// MGR CHANGE +typedef void (*TWalkFunc)(TAny*, RHeap::TCellType, TAny*, TInt); + + + struct HeapInfo + { + unsigned iFootprint; + unsigned iMaxSize; + unsigned iAllocBytes; + unsigned iAllocN; + unsigned iFreeBytes; + unsigned iFreeN; + }; + + struct SHeapCellInfo { RHybridHeap* iHeap; TInt iTotalAlloc; TInt iTotalAllocSize; TInt iTotalFree; TInt iLevelAlloc; SDebugCell* iStranded; }; + + + /** + @internalComponent + */ + enum TAllocatorType + {ESlabAllocator, EDougLeaAllocator, EPageAllocator, EFullSlab=0x80, EPartialFullSlab=0x40, EEmptySlab=0x20, ESlabSpare=0x10, ESlabMask=0xf0}; + + + /** + @internalComponent + */ + struct SWalkInfo { + /** + Walk function address shall be called + */ + TWalkFunc iFunction; + + /** + The first parameter for callback function + */ + TAny* iParam; + /** + Pointer to RHybridHeap object + */ + RHybridHeap* iHeap; + }; + + /** + @internalComponent + */ + struct SConfig { + /** + Required slab configuration ( bit 0=4, bit 1=8 .. + bit 13 = 56) + */ + TUint32 iSlabBits; + /** + Delayed slab threshold in bytes (0 = no threshold) + */ + TInt iDelayedSlabThreshold; + /** + 2^n is smallest size allocated in paged allocator (14-31 = 16 Kb --> ) + */ + TInt iPagePower; + + }; + + /** + @internalComponent + + This structure is used by test code for configuring the allocators and obtaining information + from them in order to ensure they are behaving as required. This is internal test specific + code and is liable to be changed without warning at any time. You should under no circumstances + be using it! + */ + struct STestCommand + { + TInt iCommand; // The test related command to be executed + + union + { + SConfig iConfig; // Configuration used by test code only + TAny* iData; // Extra supporting data for the test command + }; + }; + + /** + @internalComponent + + Commands used by test code for configuring the allocators and obtaining information them them + */ + enum TTestCommand { EGetConfig, ESetConfig, EHeapMetaData, ETestData }; + + virtual TAny* Alloc(TInt aSize); + virtual void Free(TAny* aPtr); + virtual TAny* ReAlloc(TAny* aPtr, TInt aSize, TInt aMode=0); + virtual TInt AllocLen(const TAny* aCell) const; +#ifndef __KERNEL_MODE__ + virtual TInt Compress(); + virtual void Reset(); + virtual TInt AllocSize(TInt& aTotalAllocSize) const; + virtual TInt Available(TInt& aBiggestBlock) const; +#endif + virtual TInt DebugFunction(TInt aFunc, TAny* a1=NULL, TAny* a2=NULL); +protected: + virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1); + +public: + TAny* operator new(TUint aSize, TAny* aBase) __NO_THROW; + void operator delete(TAny*, TAny*); + +private: + TInt DoCountAllocFree(TInt& aFree); + TInt DoCheckHeap(SCheckInfo* aInfo); + void DoMarkStart(); + TUint32 DoMarkEnd(TInt aExpected); + void DoSetAllocFail(TAllocFail aType, TInt aRate); + TBool CheckForSimulatedAllocFail(); + void DoSetAllocFail(TAllocFail aType, TInt aRate, TUint aBurst); + + void Lock() const; + void Unlock() const; + TInt ChunkHandle() const; + + RHybridHeap(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread, TBool aDlOnly, TBool aUseAdjust); + RHybridHeap(TInt aMaxLength, TInt aAlign=0, TBool aSingleThread=ETrue); + RHybridHeap(); + + void Init(TInt aBitmapSlab, TInt aPagePower); + inline void InitBins(mstate m); + inline void InitTop(mstate m, mchunkptr p, TUint psize); + void* SysAlloc(mstate m, TUint nb); + int SysTrim(mstate m, TUint pad); + void* TmallocLarge(mstate m, TUint nb); + void* TmallocSmall(mstate m, TUint nb); + /*MACROS converted functions*/ + static inline void UnlinkFirstSmallChunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I); + static inline void InsertSmallChunk(mstate M,mchunkptr P, TUint S); + static inline void InsertChunk(mstate M,mchunkptr P,TUint S); + static inline void UnlinkLargeChunk(mstate M,tchunkptr X); + static inline void UnlinkSmallChunk(mstate M, mchunkptr P,TUint S); + static inline void UnlinkChunk(mstate M, mchunkptr P, TUint S); + static inline void ComputeTreeIndex(TUint S, bindex_t& I); + static inline void InsertLargeChunk(mstate M,tchunkptr X,TUint S); + static inline void ReplaceDv(mstate M, mchunkptr P, TUint S); + static inline void ComputeBit2idx(binmap_t X,bindex_t& I); + + void DoComputeTreeIndex(TUint S, bindex_t& I); + void DoCheckAnyChunk(mstate m, mchunkptr p); + void DoCheckTopChunk(mstate m, mchunkptr p); + void DoCheckInuseChunk(mstate m, mchunkptr p); + void DoCheckFreeChunk(mstate m, mchunkptr p); + void DoCheckMallocedChunk(mstate m, void* mem, TUint s); + void DoCheckTree(mstate m, tchunkptr t); + void DoCheckTreebin(mstate m, bindex_t i); + void DoCheckSmallbin(mstate m, bindex_t i); + TInt BinFind(mstate m, mchunkptr x); + TUint TraverseAndCheck(mstate m); + void DoCheckMallocState(mstate m); + + TInt GetInfo(struct HeapInfo* i, SWalkInfo* wi=NULL) const; + void InitDlMalloc(TUint capacity, int locked); + void* DlMalloc(TUint); + void DlFree(void*); + void* DlRealloc(void*, TUint, TInt); + TUint DlInfo(struct HeapInfo* i, SWalkInfo* wi) const; + void DoCheckCommittedSize(TInt aNPages, mstate aM); + + TAny* ReAllocImpl(TAny* aPtr, TInt aSize, TInt aMode); + void Construct(TBool aSingleThread, TBool aDLOnly, TBool aUseAdjust, TInt aAlign); +#ifndef __KERNEL_MODE__ + TInt ConstructLock(TUint32 aMode); +#endif + static void Walk(SWalkInfo* aInfo, TAny* aBfr, TInt aLth, TCellType aBfrType, TAllocatorType aAlloctorType); + static void WalkCheckCell(TAny* aPtr, TCellType aType, TAny* aCell, TInt aLen); + void* Map(void* p, TInt sz); + void Unmap(void* p,TInt sz); + +private: + TInt iMinLength; + TInt iOffset; // offset of RHeap object from chunk base + TInt iGrowBy; + TInt iMinCell; + TInt iPageSize; + + // Temporarily commented out and exported from RHeap to prevent source breaks from req417-52840. + // This will be moved with another REQ after submission and subsequent fixing of bad code + //TInt iNestingLevel; + TInt iAllocCount; + // Temporarily commented out. See comment above regarding req417-52840 source breaks + //TAllocFail iFailType; + TInt iFailRate; + TBool iFailed; + TInt iFailAllocCount; + TInt iRand; + // Temporarily commented out. See comment above regarding req417-52840 source breaks + //TAny* iTestData; + + TInt iChunkSize; + TInt iHighWaterMark; + TBool iUseAdjust; + TBool iDLOnly; + + malloc_state iGlobalMallocState; + +#ifdef __KERNEL_MODE__ + + friend class RHeapK; + +#else + + friend class UserHeap; + friend class HybridHeap; + friend class TestHybridHeap; + +private: + + static void TreeRemove(slab* s); + static void TreeInsert(slab* s,slab** r); + + enum {EOkBits = (1<<(MAXSLABSIZE>>2))-1}; + + void SlabInit(); + void SlabConfig(unsigned slabbitmap); + void* SlabAllocate(slabset& allocator); + void SlabFree(void* p); + void* AllocNewSlab(slabset& allocator); + void* AllocNewPage(slabset& allocator); + void* InitNewSlab(slabset& allocator, slab* s); + void FreeSlab(slab* s); + void FreePage(page* p); + void SlabInfo(struct HeapInfo* i, SWalkInfo* wi) const; + static void SlabFullInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi); + static void SlabPartialInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi); + static void SlabEmptyInfo(slab* s, struct HeapInfo* i, SWalkInfo* wi); + static void TreeWalk(slab* const* root, void (*f)(slab*, struct HeapInfo*, SWalkInfo*), struct HeapInfo* i, SWalkInfo* wi); + + static void WalkPartialFullSlab(SWalkInfo* aInfo, slab* aSlab, TCellType aBfrType, TInt aLth); + static void WalkFullSlab(SWalkInfo* aInfo, slab* aSlab, TCellType aBfrType, TInt aLth); + void DoCheckSlab(slab* aSlab, TAllocatorType aSlabType, TAny* aBfr=NULL); + void DoCheckSlabTrees(); + void DoCheckSlabTree(slab** aS, TBool aPartialPage); + void BuildPartialSlabBitmap(TUint32* aBitmap, slab* aSlab, TAny* aBfr=NULL); + + static inline unsigned SlabHeaderFree(unsigned h) + {return (h&0x000000ff);} + static inline unsigned SlabHeaderPagemap(unsigned h) + {return (h&0x00000f00)>>8;} + static inline unsigned SlabHeaderSize(unsigned h) + {return (h&0x0003f000)>>12;} + static inline unsigned SlabHeaderUsedm4(unsigned h) + {return (h&0x0ffc0000)>>18;} + /***paged allocator code***/ + void PagedInit(TInt aPagePower); + void* PagedAllocate(unsigned size); + void PagedFree(void* p); + void* PagedReallocate(void* p, unsigned size, TInt mode); + + bool PagedEncode(unsigned pos, unsigned npage); + unsigned PagedDecode(unsigned pos) const; + inline unsigned PagedSize(void* p) const; + inline bool PagedSetSize(void* p, unsigned size); + inline void PagedZapSize(void* p, unsigned size); + inline void* Bitmap2addr(unsigned pos) const; + void PagedInfo(struct HeapInfo* i, SWalkInfo* wi) const; + void ResetBitmap(); + TBool CheckBitmap(void* aBfr, TInt aSize, TUint32& aDummy, TInt& aNPages); + +private: + paged_bitmap iPageMap; // bitmap representing page allocator's pages + TUint8* iMemBase; // bottom of paged/slab memory (chunk base) + TUint8 iBitMapBuffer[MAXSMALLPAGEBITS>>3]; // buffer for initial page bitmap + TInt iSlabThreshold; // allocations < than this are done by the slab allocator + TInt iPageThreshold; // 2^n is smallest cell size allocated in paged allocator + TInt iSlabInitThreshold; // slab allocator will be used after chunk reaches this size + TUint32 iSlabConfigBits; // set of bits that specify which slab sizes to use + slab* iPartialPage; // partial-use page tree + slab* iFullSlab; // full slabs list (so we can find them when walking) + page* iSparePage; // cached, to avoid kernel exec calls for unmapping/remapping + TUint8 iSizeMap[(MAXSLABSIZE>>2)+1]; // index of slabset indexes based on size class + slabset iSlabAlloc[MAXSLABSIZE>>2]; // array of pointers to slabsets + +#endif // __KERNEL_MODE__ +}; + +#define HEAP_ASSERT(x) __ASSERT_DEBUG(x, HEAP_PANIC(ETHeapBadCellAddress)) + +template inline T Floor(const T addr, unsigned aln) +{return T((unsigned(addr))&~(aln-1));} +template inline T Ceiling(T addr, unsigned aln) +{return T((unsigned(addr)+(aln-1))&~(aln-1));} +template inline unsigned LowBits(T addr, unsigned aln) +{return unsigned(addr)&(aln-1);} +template inline int PtrDiff(const T1* a1, const T2* a2) +{return reinterpret_cast(a1) - reinterpret_cast(a2);} +template inline T Offset(T addr, unsigned ofs) +{return T(unsigned(addr)+ofs);} + +#endif //__HEAP_HYBRID_H__ diff --git a/src/corelib/arch/symbian/newallocator.cpp b/src/corelib/arch/symbian/newallocator.cpp deleted file mode 100644 index 7025483..0000000 --- a/src/corelib/arch/symbian/newallocator.cpp +++ /dev/null @@ -1,2916 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the Symbian application wrapper of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -** The memory allocator is backported from Symbian OS, and can eventually -** be removed from Qt once it is built in to all supported OS versions. -** The allocator is a composite of three allocators: -** - A page allocator, for large allocations -** - A slab allocator, for small allocations -** - Doug Lea's allocator, for medium size allocations -****************************************************************************/ -#include -#include -#include -#include -#include - -#ifndef QT_SYMBIAN_HAVE_U32STD_H -struct SThreadCreateInfo - { - TAny* iHandle; - TInt iType; - TThreadFunction iFunction; - TAny* iPtr; - TAny* iSupervisorStack; - TInt iSupervisorStackSize; - TAny* iUserStack; - TInt iUserStackSize; - TInt iInitialThreadPriority; - TPtrC iName; - TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) - }; - -struct SStdEpocThreadCreateInfo : public SThreadCreateInfo - { - RAllocator* iAllocator; - TInt iHeapInitialSize; - TInt iHeapMaxSize; - TInt iPadding; // Make structure size a multiple of 8 bytes - }; -#else -#include -#endif -#include - -//Named local chunks require support from the kernel, which depends on Symbian^3 -#define NO_NAMED_LOCAL_CHUNKS -//Reserving a minimum heap size is not supported, because the implementation does not know what type of -//memory to use. DLA memory grows upwards, slab and page allocators grow downwards. -//This would need kernel support to do properly. -#define NO_RESERVE_MEMORY - -//The BTRACE debug framework requires Symbian OS 9.4 or higher. -//Required header files are not included in S60 5.0 SDKs, but -//they are available for open source versions of Symbian OS. -//Note that although Symbian OS 9.3 supports BTRACE, the usage in this file -//depends on 9.4 header files. - -//This debug flag uses BTRACE to emit debug traces to identify the heaps. -//Note that it uses the ETest1 trace category which is not reserved -//#define TRACING_HEAPS -//This debug flag uses BTRACE to emit debug traces to aid with debugging -//allocs, frees & reallocs. It should be used together with the KUSERHEAPTRACE -//kernel trace flag to enable heap tracing. -//#define TRACING_ALLOCS -//This debug flag turns on tracing of the call stack for each alloc trace. -//It is dependent on TRACING_ALLOCS. -//#define TRACING_CALLSTACKS - -#if defined(TRACING_ALLOCS) || defined(TRACING_HEAPS) -#include -#endif - -#ifndef __WINS__ -#pragma push -#pragma arm -#endif - -#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR - -#include "dla_p.h" -#include "newallocator_p.h" - -// if non zero this causes the slabs to be configured only when the chunk size exceeds this level -#define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data -#define SLAB_CONFIG (0xabe) - -_LIT(KDLHeapPanicCategory, "DL Heap"); -#define GET_PAGE_SIZE(x) HAL::Get(HALData::EMemoryPageSize, x) -#define __CHECK_CELL(p) -#define __POWER_OF_2(x) ((TUint32)((x)^((x)-1))>=(TUint32)(x)) -#define HEAP_PANIC(r) Panic(r) - -LOCAL_C void Panic(TCdtPanic aPanic) -// Panic the process with USER as the category. - { - User::Panic(_L("USER"),aPanic); - } - -#define STACKSIZE 32 -inline void RNewAllocator::TraceCallStack() -{ -#ifdef TRACING_CALLSTACKS - TUint32 filteredStack[STACKSIZE]; - TThreadStackInfo info; - TUint32 *sp = (TUint32*)&sp; - RThread().StackInfo(info); - Lock(); - TInt i; - for (i=0;i=info.iBase) break; - while ((TLinAddr)sp < info.iBase) { - TUint32 cur = *sp++; - TUint32 range = cur & 0xF0000000; - if (range == 0x80000000 || range == 0x70000000) { - filteredStack[i] = cur; - break; - } - } - } - Unlock(); - BTraceContextBig(BTrace::EHeap, BTrace::EHeapCallStack, (TUint32)this, filteredStack, i * 4); -#endif -} - -size_t getpagesize() -{ - TInt size; - TInt err = GET_PAGE_SIZE(size); - if(err != KErrNone) - return (size_t)0x1000; - return (size_t)size; -} - -#define gm (&iGlobalMallocState) - -RNewAllocator::RNewAllocator(TInt aMaxLength, TInt aAlign, TBool aSingleThread) -// constructor for a fixed heap. Just use DL allocator - :iMinLength(aMaxLength), iMaxLength(aMaxLength), iOffset(0), iGrowBy(0), iChunkHandle(0), - iNestingLevel(0), iAllocCount(0), iFailType(ENone), iTestData(NULL), iChunkSize(aMaxLength) - { - - if ((TUint32)aAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign)) - { - iAlign = aAlign; - } - else - { - iAlign = 4; - } - iPageSize = 0; - iFlags = aSingleThread ? (ESingleThreaded|EFixedSize) : EFixedSize; - - Init(0, 0, 0); - } - -RNewAllocator::RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, - TInt aAlign, TBool aSingleThread) - : iMinLength(aMinLength), iMaxLength(aMaxLength), iOffset(aOffset), iChunkHandle(aChunkHandle), iAlign(aAlign), iNestingLevel(0), iAllocCount(0), - iFailType(ENone), iTestData(NULL), iChunkSize(aMinLength),iHighWaterMark(aMinLength) - { - iPageSize = malloc_getpagesize; - __ASSERT_ALWAYS(aOffset >=0, User::Panic(KDLHeapPanicCategory, ETHeapNewBadOffset)); - iGrowBy = _ALIGN_UP(aGrowBy, iPageSize); - iFlags = aSingleThread ? ESingleThreaded : 0; - - // Initialise - // if the heap is created with aMinLength==aMaxLength then it cannot allocate slab or page memory - // so these sub-allocators should be disabled. Otherwise initialise with default values - if (aMinLength == aMaxLength) - Init(0, 0, 0); - else - Init(0xabe, 16, iPageSize*4); // slabs {48, 40, 32, 24, 20, 16, 12, 8}, page {64KB}, trim {16KB} -#ifdef TRACING_HEAPS - RChunk chunk; - chunk.SetHandle(iChunkHandle); - TKName chunk_name; - chunk.FullName(chunk_name); - BTraceContextBig(BTrace::ETest1, 2, 22, chunk_name.Ptr(), chunk_name.Size()); - - TUint32 traceData[4]; - traceData[0] = iChunkHandle; - traceData[1] = iMinLength; - traceData[2] = iMaxLength; - traceData[3] = iAlign; - BTraceContextN(BTrace::ETest1, 1, (TUint32)this, 11, traceData, sizeof(traceData)); -#endif - - } - -TAny* RNewAllocator::operator new(TUint aSize, TAny* aBase) __NO_THROW - { - __ASSERT_ALWAYS(aSize>=sizeof(RNewAllocator), HEAP_PANIC(ETHeapNewBadSize)); - RNewAllocator* h = (RNewAllocator*)aBase; - h->iAlign = 0x80000000; // garbage value - h->iBase = ((TUint8*)aBase) + aSize; - return aBase; - } - -void RNewAllocator::Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshold) - { - __ASSERT_ALWAYS((TUint32)iAlign>=sizeof(TAny*) && __POWER_OF_2(iAlign), HEAP_PANIC(ETHeapNewBadAlignment)); - - /*Moved code which does initialization */ - iTop = (TUint8*)this + iMinLength; - iAllocCount = 0; - memset(&mparams,0,sizeof(mparams)); - - Init_Dlmalloc(iTop - iBase, 0, aTrimThreshold); - - slab_init(); - slab_config_bits = aBitmapSlab; -#ifdef DELAYED_SLAB_THRESHOLD - if (iChunkSize < DELAYED_SLAB_THRESHOLD) - { - slab_init_threshold = DELAYED_SLAB_THRESHOLD; - } - else -#endif // DELAYED_SLAB_THRESHOLD - { - slab_init_threshold = KMaxTUint; - slab_config(aBitmapSlab); - } - - /*10-1K,11-2K,12-4k,13-8K,14-16K,15-32K,16-64K*/ - paged_init(aPagePower); - -#ifdef TRACING_ALLOCS - TUint32 traceData[3]; - traceData[0] = aBitmapSlab; - traceData[1] = aPagePower; - traceData[2] = aTrimThreshold; - BTraceContextN(BTrace::ETest1, BTrace::EHeapAlloc, (TUint32)this, 0, traceData, sizeof(traceData)); -#endif - - } - -RNewAllocator::SCell* RNewAllocator::GetAddress(const TAny* aCell) const -// -// As much as possible, check a cell address and backspace it -// to point at the cell header. -// - { - - TLinAddr m = TLinAddr(iAlign - 1); - __ASSERT_ALWAYS(!(TLinAddr(aCell)&m), HEAP_PANIC(ETHeapBadCellAddress)); - - SCell* pC = (SCell*)(((TUint8*)aCell)-EAllocCellSize); - __CHECK_CELL(pC); - - return pC; - } - -TInt RNewAllocator::AllocLen(const TAny* aCell) const -{ - if (ptrdiff(aCell, this) >= 0) - { - mchunkptr m = mem2chunk(aCell); - return chunksize(m) - overhead_for(m); - } - if (lowbits(aCell, pagesize) > cellalign) - return header_size(slab::slabfor(aCell)->header); - if (lowbits(aCell, pagesize) == cellalign) - return *(unsigned*)(offset(aCell,-int(cellalign)))-cellalign; - return paged_descriptor(aCell)->size; -} - -TAny* RNewAllocator::Alloc(TInt aSize) -{ - __ASSERT_ALWAYS((TUint)aSize<(KMaxTInt/2),HEAP_PANIC(ETHeapBadAllocatedCellSize)); - - TAny* addr; - -#ifdef TRACING_ALLOCS - TInt aCnt=0; -#endif - Lock(); - if (aSize < slab_threshold) - { - TInt ix = sizemap[(aSize+3)>>2]; - ASSERT(ix != 0xff); - addr = slab_allocate(slaballoc[ix]); - }else if((aSize >> page_threshold)==0) - { -#ifdef TRACING_ALLOCS - aCnt=1; -#endif - addr = dlmalloc(aSize); - } - else - { -#ifdef TRACING_ALLOCS - aCnt=2; -#endif - addr = paged_allocate(aSize); - } - - iCellCount++; - iTotalAllocSize += aSize; - Unlock(); - -#ifdef TRACING_ALLOCS - if (iFlags & ETraceAllocs) - { - TUint32 traceData[3]; - traceData[0] = AllocLen(addr); - traceData[1] = aSize; - traceData[2] = aCnt; - BTraceContextN(BTrace::EHeap, BTrace::EHeapAlloc, (TUint32)this, (TUint32)addr, traceData, sizeof(traceData)); - TraceCallStack(); - } -#endif - - return addr; -} - -TInt RNewAllocator::Compress() - { - if (iFlags & EFixedSize) - return 0; - - Lock(); - dlmalloc_trim(0); - if (spare_page) - { - unmap(spare_page,pagesize); - spare_page = 0; - } - Unlock(); - return 0; - } - -void RNewAllocator::Free(TAny* aPtr) -{ - -#ifdef TRACING_ALLOCS - TInt aCnt=0; -#endif -#ifdef ENABLE_DEBUG_TRACE - RThread me; - TBuf<100> thName; - me.FullName(thName); -#endif - //if (!aPtr) return; //return in case of NULL pointer - - Lock(); - - if (!aPtr) - ; - else if (ptrdiff(aPtr, this) >= 0) - { -#ifdef TRACING_ALLOCS - aCnt = 1; -#endif - dlfree( aPtr); - } - else if (lowbits(aPtr, pagesize) <= cellalign) - { -#ifdef TRACING_ALLOCS - aCnt = 2; -#endif - paged_free(aPtr); - } - else - { -#ifdef TRACING_ALLOCS - aCnt = 0; -#endif - slab_free(aPtr); - } - iCellCount--; - Unlock(); - -#ifdef TRACING_ALLOCS - if (iFlags & ETraceAllocs) - { - TUint32 traceData; - traceData = aCnt; - BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32)this, (TUint32)aPtr, &traceData, sizeof(traceData)); - TraceCallStack(); - } -#endif -} - - -void RNewAllocator::Reset() - { - // TODO free everything - User::Panic(_L("RNewAllocator"), 1); //this should never be called - } - -#ifdef TRACING_ALLOCS -inline void RNewAllocator::TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone) -{ - if (aNewPtr && (iFlags & ETraceAllocs)) { - TUint32 traceData[3]; - traceData[0] = AllocLen(aNewPtr); - traceData[1] = aSize; - traceData[2] = (TUint32) aPtr; - BTraceContextN(BTrace::EHeap, BTrace::EHeapReAlloc, (TUint32) this, (TUint32) aNewPtr, - traceData, sizeof(traceData)); - TraceCallStack(); - //workaround for SAW not handling reallocs properly - if (aZone >= 0 && aPtr != aNewPtr) { - BTraceContextN(BTrace::EHeap, BTrace::EHeapFree, (TUint32) this, (TUint32) aPtr, - &aZone, sizeof(aZone)); - TraceCallStack(); - } - } -} -#else -//Q_UNUSED generates code that prevents the compiler optimising out the empty inline function -inline void RNewAllocator::TraceReAlloc(TAny* , TInt , TAny* , TInt ) -{} -#endif - -TAny* RNewAllocator::ReAlloc(TAny* aPtr, TInt aSize, TInt /*aMode = 0*/) - { - if(ptrdiff(aPtr,this)>=0) - { - // original cell is in DL zone - if(aSize >= slab_threshold && (aSize>>page_threshold)==0) - { - // and so is the new one - Lock(); - TAny* addr = dlrealloc(aPtr,aSize); - Unlock(); - TraceReAlloc(aPtr, aSize, addr, 0); - return addr; - } - } - else if(lowbits(aPtr,pagesize)<=cellalign) - { - // original cell is either NULL or in paged zone - if (!aPtr) - return Alloc(aSize); - if(aSize >> page_threshold) - { - // and so is the new one - Lock(); - TAny* addr = paged_reallocate(aPtr,aSize); - Unlock(); - TraceReAlloc(aPtr, aSize, addr, 2); - return addr; - } - } - else - { - // original cell is in slab znoe - if(aSize <= header_size(slab::slabfor(aPtr)->header)) { - TraceReAlloc(aPtr, aSize, aPtr, 1); - return aPtr; - } - } - TAny* newp = Alloc(aSize); - if(newp) - { - TInt oldsize = AllocLen(aPtr); - memcpy(newp,aPtr,oldsize (this); - mallinfo info = self->dlmallinfo(); - aBiggestBlock = info.largestBlock; - return info.fordblks; -} -TInt RNewAllocator::AllocSize(TInt& aTotalAllocSize) const -{ - aTotalAllocSize = iTotalAllocSize; - return iCellCount; -} - -TInt RNewAllocator::DebugFunction(TInt aFunc, TAny* a1, TAny* /*a2*/) - { - TInt r = KErrNotSupported; - TInt* a1int = reinterpret_cast(a1); - switch(aFunc) { - case RAllocator::ECount: - { - struct mallinfo mi = dlmallinfo(); - *a1int = mi.fordblks; - r = mi.uordblks; - } - break; - case RAllocator::EMarkStart: - case RAllocator::EMarkEnd: - case RAllocator::ESetFail: - case RAllocator::ECheck: - r = KErrNone; - break; - } - return r; - } - -TInt RNewAllocator::Extension_(TUint /* aExtensionId */, TAny*& /* a0 */, TAny* /* a1 */) - { - return KErrNotSupported; - } - -/////////////////////////////////////////////////////////////////////////////// -// imported from dla.cpp -/////////////////////////////////////////////////////////////////////////////// - -//#include -//#define DEBUG_REALLOC -#ifdef DEBUG_REALLOC -#include -#endif -int RNewAllocator::init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/) -{ - if (mparams.page_size == 0) - { - size_t s; - mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD; - mparams.trim_threshold = aTrimThreshold; - #if MORECORE_CONTIGUOUS - mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT; - #else /* MORECORE_CONTIGUOUS */ - mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT; - #endif /* MORECORE_CONTIGUOUS */ - - s = (size_t)0x58585858U; - ACQUIRE_MAGIC_INIT_LOCK(&mparams); - if (mparams.magic == 0) { - mparams.magic = s; - /* Set up lock for main malloc area */ - INITIAL_LOCK(&gm->mutex); - gm->mflags = mparams.default_mflags; - } - RELEASE_MAGIC_INIT_LOCK(&mparams); - - mparams.page_size = malloc_getpagesize; - - mparams.granularity = ((DEFAULT_GRANULARITY != 0)? - DEFAULT_GRANULARITY : mparams.page_size); - - /* Sanity-check configuration: - size_t must be unsigned and as wide as pointer type. - ints must be at least 4 bytes. - alignment must be at least 8. - Alignment, min chunk size, and page size must all be powers of 2. - */ - - if ((sizeof(size_t) != sizeof(TUint8*)) || - (MAX_SIZE_T < MIN_CHUNK_SIZE) || - (sizeof(int) < 4) || - (MALLOC_ALIGNMENT < (size_t)8U) || - ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) || - ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) || - ((mparams.granularity & (mparams.granularity-SIZE_T_ONE)) != 0) || - ((mparams.page_size & (mparams.page_size-SIZE_T_ONE)) != 0)) - ABORT; - } - return 0; -} - -void RNewAllocator::init_bins(mstate m) { - /* Establish circular links for smallbins */ - bindex_t i; - for (i = 0; i < NSMALLBINS; ++i) { - sbinptr bin = smallbin_at(m,i); - bin->fd = bin->bk = bin; - } -} -/* ---------------------------- malloc support --------------------------- */ - -/* allocate a large request from the best fitting chunk in a treebin */ -void* RNewAllocator::tmalloc_large(mstate m, size_t nb) { - tchunkptr v = 0; - size_t rsize = -nb; /* Unsigned negation */ - tchunkptr t; - bindex_t idx; - compute_tree_index(nb, idx); - - if ((t = *treebin_at(m, idx)) != 0) { - /* Traverse tree for this bin looking for node with size == nb */ - size_t sizebits = - nb << - leftshift_for_tree_index(idx); - tchunkptr rst = 0; /* The deepest untaken right subtree */ - for (;;) { - tchunkptr rt; - size_t trem = chunksize(t) - nb; - if (trem < rsize) { - v = t; - if ((rsize = trem) == 0) - break; - } - rt = t->child[1]; - t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]; - if (rt != 0 && rt != t) - rst = rt; - if (t == 0) { - t = rst; /* set t to least subtree holding sizes > nb */ - break; - } - sizebits <<= 1; - } - } - if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */ - binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap; - if (leftbits != 0) { - bindex_t i; - binmap_t leastbit = least_bit(leftbits); - compute_bit2idx(leastbit, i); - t = *treebin_at(m, i); - } - } - while (t != 0) { /* find smallest of tree or subtree */ - size_t trem = chunksize(t) - nb; - if (trem < rsize) { - rsize = trem; - v = t; - } - t = leftmost_child(t); - } - /* If dv is a better fit, return 0 so malloc will use it */ - if (v != 0 && rsize < (size_t)(m->dvsize - nb)) { - if (RTCHECK(ok_address(m, v))) { /* split */ - mchunkptr r = chunk_plus_offset(v, nb); - assert(chunksize(v) == rsize + nb); - if (RTCHECK(ok_next(v, r))) { - unlink_large_chunk(m, v); - if (rsize < MIN_CHUNK_SIZE) - set_inuse_and_pinuse(m, v, (rsize + nb)); - else { - set_size_and_pinuse_of_inuse_chunk(m, v, nb); - set_size_and_pinuse_of_free_chunk(r, rsize); - insert_chunk(m, r, rsize); - } - return chunk2mem(v); - } - } - CORRUPTION_ERROR_ACTION(m); - } - return 0; -} - -/* allocate a small request from the best fitting chunk in a treebin */ -void* RNewAllocator::tmalloc_small(mstate m, size_t nb) { - tchunkptr t, v; - size_t rsize; - bindex_t i; - binmap_t leastbit = least_bit(m->treemap); - compute_bit2idx(leastbit, i); - - v = t = *treebin_at(m, i); - rsize = chunksize(t) - nb; - - while ((t = leftmost_child(t)) != 0) { - size_t trem = chunksize(t) - nb; - if (trem < rsize) { - rsize = trem; - v = t; - } - } - - if (RTCHECK(ok_address(m, v))) { - mchunkptr r = chunk_plus_offset(v, nb); - assert(chunksize(v) == rsize + nb); - if (RTCHECK(ok_next(v, r))) { - unlink_large_chunk(m, v); - if (rsize < MIN_CHUNK_SIZE) - set_inuse_and_pinuse(m, v, (rsize + nb)); - else { - set_size_and_pinuse_of_inuse_chunk(m, v, nb); - set_size_and_pinuse_of_free_chunk(r, rsize); - replace_dv(m, r, rsize); - } - return chunk2mem(v); - } - } - CORRUPTION_ERROR_ACTION(m); - return 0; -} - -void RNewAllocator::init_top(mstate m, mchunkptr p, size_t psize) -{ - /* Ensure alignment */ - size_t offset = align_offset(chunk2mem(p)); - p = (mchunkptr)((TUint8*)p + offset); - psize -= offset; - m->top = p; - m->topsize = psize; - p->head = psize | PINUSE_BIT; - /* set size of fake trailing chunk holding overhead space only once */ - mchunkptr chunkPlusOff = chunk_plus_offset(p, psize); - chunkPlusOff->head = TOP_FOOT_SIZE; - m->trim_check = mparams.trim_threshold; /* reset on each update */ -} - -void* RNewAllocator::internal_realloc(mstate m, void* oldmem, size_t bytes) -{ - if (bytes >= MAX_REQUEST) { - MALLOC_FAILURE_ACTION; - return 0; - } - if (!PREACTION(m)) { - mchunkptr oldp = mem2chunk(oldmem); - size_t oldsize = chunksize(oldp); - mchunkptr next = chunk_plus_offset(oldp, oldsize); - mchunkptr newp = 0; - void* extra = 0; - - /* Try to either shrink or extend into top. Else malloc-copy-free */ - - if (RTCHECK(ok_address(m, oldp) && ok_cinuse(oldp) && - ok_next(oldp, next) && ok_pinuse(next))) { - size_t nb = request2size(bytes); - if (is_mmapped(oldp)) - newp = mmap_resize(m, oldp, nb); - else - if (oldsize >= nb) { /* already big enough */ - size_t rsize = oldsize - nb; - newp = oldp; - if (rsize >= MIN_CHUNK_SIZE) { - mchunkptr remainder = chunk_plus_offset(newp, nb); - set_inuse(m, newp, nb); - set_inuse(m, remainder, rsize); - extra = chunk2mem(remainder); - } - } - /*AMOD: Modified to optimized*/ - else if (next == m->top && oldsize + m->topsize > nb) - { - /* Expand into top */ - if(oldsize + m->topsize > nb) - { - size_t newsize = oldsize + m->topsize; - size_t newtopsize = newsize - nb; - mchunkptr newtop = chunk_plus_offset(oldp, nb); - set_inuse(m, oldp, nb); - newtop->head = newtopsize |PINUSE_BIT; - m->top = newtop; - m->topsize = newtopsize; - newp = oldp; - } - } - } - else { - USAGE_ERROR_ACTION(m, oldmem); - POSTACTION(m); - return 0; - } - - POSTACTION(m); - - if (newp != 0) { - if (extra != 0) { - internal_free(m, extra); - } - check_inuse_chunk(m, newp); - return chunk2mem(newp); - } - else { - void* newmem = internal_malloc(m, bytes); - if (newmem != 0) { - size_t oc = oldsize - overhead_for(oldp); - memcpy(newmem, oldmem, (oc < bytes)? oc : bytes); - internal_free(m, oldmem); - } - return newmem; - } - } - return 0; -} -/* ----------------------------- statistics ------------------------------ */ -mallinfo RNewAllocator::internal_mallinfo(mstate m) { - struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - TInt chunkCnt = 0; - if (!PREACTION(m)) { - check_malloc_state(m); - if (is_initialized(m)) { - size_t nfree = SIZE_T_ONE; /* top always free */ - size_t mfree = m->topsize + TOP_FOOT_SIZE; - size_t sum = mfree; - msegmentptr s = &m->seg; - while (s != 0) { - mchunkptr q = align_as_chunk(s->base); - chunkCnt++; - while (segment_holds(s, q) && - q != m->top && q->head != FENCEPOST_HEAD) { - size_t sz = chunksize(q); - sum += sz; - if (!cinuse(q)) { - if (sz > nm.largestBlock) - nm.largestBlock = sz; - mfree += sz; - ++nfree; - } - q = next_chunk(q); - } - s = s->next; - } - nm.arena = sum; - nm.ordblks = nfree; - nm.hblkhd = m->footprint - sum; - nm.usmblks = m->max_footprint; - nm.uordblks = m->footprint - mfree; - nm.fordblks = mfree; - nm.keepcost = m->topsize; - nm.cellCount= chunkCnt;/*number of chunks allocated*/ - } - POSTACTION(m); - } - return nm; -} - -void RNewAllocator::internal_malloc_stats(mstate m) { -if (!PREACTION(m)) { - size_t fp = 0; - size_t used = 0; - check_malloc_state(m); - if (is_initialized(m)) { - msegmentptr s = &m->seg; - size_t maxfp = m->max_footprint; - fp = m->footprint; - used = fp - (m->topsize + TOP_FOOT_SIZE); - - while (s != 0) { - mchunkptr q = align_as_chunk(s->base); - while (segment_holds(s, q) && - q != m->top && q->head != FENCEPOST_HEAD) { - if (!cinuse(q)) - used -= chunksize(q); - q = next_chunk(q); - } - s = s->next; - } - } - POSTACTION(m); -} -} -/* support for mallopt */ -int RNewAllocator::change_mparam(int param_number, int value) { - size_t val = (size_t)value; - init_mparams(DEFAULT_TRIM_THRESHOLD); - switch(param_number) { - case M_TRIM_THRESHOLD: - mparams.trim_threshold = val; - return 1; - case M_GRANULARITY: - if (val >= mparams.page_size && ((val & (val-1)) == 0)) { - mparams.granularity = val; - return 1; - } - else - return 0; - case M_MMAP_THRESHOLD: - mparams.mmap_threshold = val; - return 1; - default: - return 0; - } -} -/* Get memory from system using MORECORE or MMAP */ -void* RNewAllocator::sys_alloc(mstate m, size_t nb) -{ - TUint8* tbase = CMFAIL; - size_t tsize = 0; - flag_t mmap_flag = 0; - //init_mparams();/*No need to do init_params here*/ - /* Directly map large chunks */ - if (use_mmap(m) && nb >= mparams.mmap_threshold) - { - void* mem = mmap_alloc(m, nb); - if (mem != 0) - return mem; - } - /* - Try getting memory in any of three ways (in most-preferred to - least-preferred order): - 1. A call to MORECORE that can normally contiguously extend memory. - (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or - or main space is mmapped or a previous contiguous call failed) - 2. A call to MMAP new space (disabled if not HAVE_MMAP). - Note that under the default settings, if MORECORE is unable to - fulfill a request, and HAVE_MMAP is true, then mmap is - used as a noncontiguous system allocator. This is a useful backup - strategy for systems with holes in address spaces -- in this case - sbrk cannot contiguously expand the heap, but mmap may be able to - find space. - 3. A call to MORECORE that cannot usually contiguously extend memory. - (disabled if not HAVE_MORECORE) - */ - /*Trying to allocate the memory*/ - if(MORECORE_CONTIGUOUS && !use_noncontiguous(m)) - { - TUint8* br = CMFAIL; - msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (TUint8*)m->top); - size_t asize = 0; - ACQUIRE_MORECORE_LOCK(m); - if (ss == 0) - { /* First time through or recovery */ - TUint8* base = (TUint8*)CALL_MORECORE(0); - if (base != CMFAIL) - { - asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); - /* Adjust to end on a page boundary */ - if (!is_page_aligned(base)) - asize += (page_align((size_t)base) - (size_t)base); - /* Can't call MORECORE if size is negative when treated as signed */ - if (asize < HALF_MAX_SIZE_T &&(br = (TUint8*)(CALL_MORECORE(asize))) == base) - { - tbase = base; - tsize = asize; - } - } - } - else - { - /* Subtract out existing available top space from MORECORE request. */ - asize = granularity_align(nb - m->topsize + TOP_FOOT_SIZE + SIZE_T_ONE); - /* Use mem here only if it did continuously extend old space */ - if (asize < HALF_MAX_SIZE_T && - (br = (TUint8*)(CALL_MORECORE(asize))) == ss->base+ss->size) { - tbase = br; - tsize = asize; - } - } - if (tbase == CMFAIL) { /* Cope with partial failure */ - if (br != CMFAIL) { /* Try to use/extend the space we did get */ - if (asize < HALF_MAX_SIZE_T && - asize < nb + TOP_FOOT_SIZE + SIZE_T_ONE) { - size_t esize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE - asize); - if (esize < HALF_MAX_SIZE_T) { - TUint8* end = (TUint8*)CALL_MORECORE(esize); - if (end != CMFAIL) - asize += esize; - else { /* Can't use; try to release */ - CALL_MORECORE(-asize); - br = CMFAIL; - } - } - } - } - if (br != CMFAIL) { /* Use the space we did get */ - tbase = br; - tsize = asize; - } - else - disable_contiguous(m); /* Don't try contiguous path in the future */ - } - RELEASE_MORECORE_LOCK(m); - } - if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */ - size_t req = nb + TOP_FOOT_SIZE + SIZE_T_ONE; - size_t rsize = granularity_align(req); - if (rsize > nb) { /* Fail if wraps around zero */ - TUint8* mp = (TUint8*)(CALL_MMAP(rsize)); - if (mp != CMFAIL) { - tbase = mp; - tsize = rsize; - mmap_flag = IS_MMAPPED_BIT; - } - } - } - if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */ - size_t asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE); - if (asize < HALF_MAX_SIZE_T) { - TUint8* br = CMFAIL; - TUint8* end = CMFAIL; - ACQUIRE_MORECORE_LOCK(m); - br = (TUint8*)(CALL_MORECORE(asize)); - end = (TUint8*)(CALL_MORECORE(0)); - RELEASE_MORECORE_LOCK(m); - if (br != CMFAIL && end != CMFAIL && br < end) { - size_t ssize = end - br; - if (ssize > nb + TOP_FOOT_SIZE) { - tbase = br; - tsize = ssize; - } - } - } - } - if (tbase != CMFAIL) { - if ((m->footprint += tsize) > m->max_footprint) - m->max_footprint = m->footprint; - if (!is_initialized(m)) { /* first-time initialization */ - m->seg.base = m->least_addr = tbase; - m->seg.size = tsize; - m->seg.sflags = mmap_flag; - m->magic = mparams.magic; - init_bins(m); - if (is_global(m)) - init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); - else { - /* Offset top by embedded malloc_state */ - mchunkptr mn = next_chunk(mem2chunk(m)); - init_top(m, mn, (size_t)((tbase + tsize) - (TUint8*)mn) -TOP_FOOT_SIZE); - } - }else { - /* Try to merge with an existing segment */ - msegmentptr sp = &m->seg; - while (sp != 0 && tbase != sp->base + sp->size) - sp = sp->next; - if (sp != 0 && !is_extern_segment(sp) && - (sp->sflags & IS_MMAPPED_BIT) == mmap_flag && - segment_holds(sp, m->top)) - { /* append */ - sp->size += tsize; - init_top(m, m->top, m->topsize + tsize); - } - else { - if (tbase < m->least_addr) - m->least_addr = tbase; - sp = &m->seg; - while (sp != 0 && sp->base != tbase + tsize) - sp = sp->next; - if (sp != 0 && - !is_extern_segment(sp) && - (sp->sflags & IS_MMAPPED_BIT) == mmap_flag) { - TUint8* oldbase = sp->base; - sp->base = tbase; - sp->size += tsize; - return prepend_alloc(m, tbase, oldbase, nb); - } - else - add_segment(m, tbase, tsize, mmap_flag); - } - } - if (nb < m->topsize) { /* Allocate from new or extended top space */ - size_t rsize = m->topsize -= nb; - mchunkptr p = m->top; - mchunkptr r = m->top = chunk_plus_offset(p, nb); - r->head = rsize | PINUSE_BIT; - set_size_and_pinuse_of_inuse_chunk(m, p, nb); - check_top_chunk(m, m->top); - check_malloced_chunk(m, chunk2mem(p), nb); - return chunk2mem(p); - } - } - /*need to check this*/ - //errno = -1; - return 0; -} -msegmentptr RNewAllocator::segment_holding(mstate m, TUint8* addr) { - msegmentptr sp = &m->seg; - for (;;) { - if (addr >= sp->base && addr < sp->base + sp->size) - return sp; - if ((sp = sp->next) == 0) - return 0; - } -} -/* Unlink the first chunk from a smallbin */ -inline void RNewAllocator::unlink_first_small_chunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I) -{ - mchunkptr F = P->fd; - assert(P != B); - assert(P != F); - assert(chunksize(P) == small_index2size(I)); - if (B == F) - clear_smallmap(M, I); - else if (RTCHECK(ok_address(M, F))) { - B->fd = F; - F->bk = B; - } - else { - CORRUPTION_ERROR_ACTION(M); - } -} -/* Link a free chunk into a smallbin */ -inline void RNewAllocator::insert_small_chunk(mstate M,mchunkptr P, size_t S) -{ - bindex_t I = small_index(S); - mchunkptr B = smallbin_at(M, I); - mchunkptr F = B; - assert(S >= MIN_CHUNK_SIZE); - if (!smallmap_is_marked(M, I)) - mark_smallmap(M, I); - else if (RTCHECK(ok_address(M, B->fd))) - F = B->fd; - else { - CORRUPTION_ERROR_ACTION(M); - } - B->fd = P; - F->bk = P; - P->fd = F; - P->bk = B; -} - - -inline void RNewAllocator::insert_chunk(mstate M,mchunkptr P,size_t S) -{ - if (is_small(S)) - insert_small_chunk(M, P, S); - else{ - tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); - } -} - -inline void RNewAllocator::unlink_large_chunk(mstate M,tchunkptr X) -{ - tchunkptr XP = X->parent; - tchunkptr R; - if (X->bk != X) { - tchunkptr F = X->fd; - R = X->bk; - if (RTCHECK(ok_address(M, F))) { - F->bk = R; - R->fd = F; - } - else { - CORRUPTION_ERROR_ACTION(M); - } - } - else { - tchunkptr* RP; - if (((R = *(RP = &(X->child[1]))) != 0) || - ((R = *(RP = &(X->child[0]))) != 0)) { - tchunkptr* CP; - while ((*(CP = &(R->child[1])) != 0) || - (*(CP = &(R->child[0])) != 0)) { - R = *(RP = CP); - } - if (RTCHECK(ok_address(M, RP))) - *RP = 0; - else { - CORRUPTION_ERROR_ACTION(M); - } - } - } - if (XP != 0) { - tbinptr* H = treebin_at(M, X->index); - if (X == *H) { - if ((*H = R) == 0) - clear_treemap(M, X->index); - } - else if (RTCHECK(ok_address(M, XP))) { - if (XP->child[0] == X) - XP->child[0] = R; - else - XP->child[1] = R; - } - else - CORRUPTION_ERROR_ACTION(M); - if (R != 0) { - if (RTCHECK(ok_address(M, R))) { - tchunkptr C0, C1; - R->parent = XP; - if ((C0 = X->child[0]) != 0) { - if (RTCHECK(ok_address(M, C0))) { - R->child[0] = C0; - C0->parent = R; - } - else - CORRUPTION_ERROR_ACTION(M); - } - if ((C1 = X->child[1]) != 0) { - if (RTCHECK(ok_address(M, C1))) { - R->child[1] = C1; - C1->parent = R; - } - else - CORRUPTION_ERROR_ACTION(M); - } - } - else - CORRUPTION_ERROR_ACTION(M); - } - } -} - -/* Unlink a chunk from a smallbin */ -inline void RNewAllocator::unlink_small_chunk(mstate M, mchunkptr P,size_t S) -{ - mchunkptr F = P->fd; - mchunkptr B = P->bk; - bindex_t I = small_index(S); - assert(P != B); - assert(P != F); - assert(chunksize(P) == small_index2size(I)); - if (F == B) - clear_smallmap(M, I); - else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) && - (B == smallbin_at(M,I) || ok_address(M, B)))) { - F->bk = B; - B->fd = F; - } - else { - CORRUPTION_ERROR_ACTION(M); - } -} - -inline void RNewAllocator::unlink_chunk(mstate M, mchunkptr P, size_t S) -{ - if (is_small(S)) - unlink_small_chunk(M, P, S); - else - { - tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); - } -} - -inline void RNewAllocator::compute_tree_index(size_t S, bindex_t& I) -{ - size_t X = S >> TREEBIN_SHIFT; - if (X == 0) - I = 0; - else if (X > 0xFFFF) - I = NTREEBINS-1; - else { - unsigned int Y = (unsigned int)X; - unsigned int N = ((Y - 0x100) >> 16) & 8; - unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; - N += K; - N += K = (((Y <<= K) - 0x4000) >> 16) & 2; - K = 14 - N + ((Y <<= K) >> 15); - I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)); - } -} - -/* ------------------------- Operations on trees ------------------------- */ - -/* Insert chunk into tree */ -inline void RNewAllocator::insert_large_chunk(mstate M,tchunkptr X,size_t S) -{ - tbinptr* H; - bindex_t I; - compute_tree_index(S, I); - H = treebin_at(M, I); - X->index = I; - X->child[0] = X->child[1] = 0; - if (!treemap_is_marked(M, I)) { - mark_treemap(M, I); - *H = X; - X->parent = (tchunkptr)H; - X->fd = X->bk = X; - } - else { - tchunkptr T = *H; - size_t K = S << leftshift_for_tree_index(I); - for (;;) { - if (chunksize(T) != S) { - tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]); - K <<= 1; - if (*C != 0) - T = *C; - else if (RTCHECK(ok_address(M, C))) { - *C = X; - X->parent = T; - X->fd = X->bk = X; - break; - } - else { - CORRUPTION_ERROR_ACTION(M); - break; - } - } - else { - tchunkptr F = T->fd; - if (RTCHECK(ok_address(M, T) && ok_address(M, F))) { - T->fd = F->bk = X; - X->fd = F; - X->bk = T; - X->parent = 0; - break; - } - else { - CORRUPTION_ERROR_ACTION(M); - break; - } - } - } - } -} - -/* - Unlink steps: - - 1. If x is a chained node, unlink it from its same-sized fd/bk links - and choose its bk node as its replacement. - 2. If x was the last node of its size, but not a leaf node, it must - be replaced with a leaf node (not merely one with an open left or - right), to make sure that lefts and rights of descendents - correspond properly to bit masks. We use the rightmost descendent - of x. We could use any other leaf, but this is easy to locate and - tends to counteract removal of leftmosts elsewhere, and so keeps - paths shorter than minimally guaranteed. This doesn't loop much - because on average a node in a tree is near the bottom. - 3. If x is the base of a chain (i.e., has parent links) relink - x's parent and children to x's replacement (or null if none). -*/ - -/* Replace dv node, binning the old one */ -/* Used only when dvsize known to be small */ -inline void RNewAllocator::replace_dv(mstate M, mchunkptr P, size_t S) -{ - size_t DVS = M->dvsize; - if (DVS != 0) { - mchunkptr DV = M->dv; - assert(is_small(DVS)); - insert_small_chunk(M, DV, DVS); - } - M->dvsize = S; - M->dv = P; -} - -inline void RNewAllocator::compute_bit2idx(binmap_t X,bindex_t& I) -{ - unsigned int Y = X - 1; - unsigned int K = Y >> (16-4) & 16; - unsigned int N = K; Y >>= K; - N += K = Y >> (8-3) & 8; Y >>= K; - N += K = Y >> (4-2) & 4; Y >>= K; - N += K = Y >> (2-1) & 2; Y >>= K; - N += K = Y >> (1-0) & 1; Y >>= K; - I = (bindex_t)(N + Y); -} - -void RNewAllocator::add_segment(mstate m, TUint8* tbase, size_t tsize, flag_t mmapped) { - /* Determine locations and sizes of segment, fenceposts, old top */ - TUint8* old_top = (TUint8*)m->top; - msegmentptr oldsp = segment_holding(m, old_top); - TUint8* old_end = oldsp->base + oldsp->size; - size_t ssize = pad_request(sizeof(struct malloc_segment)); - TUint8* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK); - size_t offset = align_offset(chunk2mem(rawsp)); - TUint8* asp = rawsp + offset; - TUint8* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp; - mchunkptr sp = (mchunkptr)csp; - msegmentptr ss = (msegmentptr)(chunk2mem(sp)); - mchunkptr tnext = chunk_plus_offset(sp, ssize); - mchunkptr p = tnext; - int nfences = 0; - - /* reset top to new space */ - init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE); - - /* Set up segment record */ - assert(is_aligned(ss)); - set_size_and_pinuse_of_inuse_chunk(m, sp, ssize); - *ss = m->seg; /* Push current record */ - m->seg.base = tbase; - m->seg.size = tsize; - m->seg.sflags = mmapped; - m->seg.next = ss; - - /* Insert trailing fenceposts */ - for (;;) { - mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE); - p->head = FENCEPOST_HEAD; - ++nfences; - if ((TUint8*)(&(nextp->head)) < old_end) - p = nextp; - else - break; - } - assert(nfences >= 2); - - /* Insert the rest of old top into a bin as an ordinary free chunk */ - if (csp != old_top) { - mchunkptr q = (mchunkptr)old_top; - size_t psize = csp - old_top; - mchunkptr tn = chunk_plus_offset(q, psize); - set_free_with_pinuse(q, psize, tn); - insert_chunk(m, q, psize); - } - - check_top_chunk(m, m->top); -} - - -void* RNewAllocator::prepend_alloc(mstate m, TUint8* newbase, TUint8* oldbase, - size_t nb) { - mchunkptr p = align_as_chunk(newbase); - mchunkptr oldfirst = align_as_chunk(oldbase); - size_t psize = (TUint8*)oldfirst - (TUint8*)p; - mchunkptr q = chunk_plus_offset(p, nb); - size_t qsize = psize - nb; - set_size_and_pinuse_of_inuse_chunk(m, p, nb); - - assert((TUint8*)oldfirst > (TUint8*)q); - assert(pinuse(oldfirst)); - assert(qsize >= MIN_CHUNK_SIZE); - - /* consolidate remainder with first chunk of old base */ - if (oldfirst == m->top) { - size_t tsize = m->topsize += qsize; - m->top = q; - q->head = tsize | PINUSE_BIT; - check_top_chunk(m, q); - } - else if (oldfirst == m->dv) { - size_t dsize = m->dvsize += qsize; - m->dv = q; - set_size_and_pinuse_of_free_chunk(q, dsize); - } - else { - if (!cinuse(oldfirst)) { - size_t nsize = chunksize(oldfirst); - unlink_chunk(m, oldfirst, nsize); - oldfirst = chunk_plus_offset(oldfirst, nsize); - qsize += nsize; - } - set_free_with_pinuse(q, qsize, oldfirst); - insert_chunk(m, q, qsize); - check_free_chunk(m, q); - } - - check_malloced_chunk(m, chunk2mem(p), nb); - return chunk2mem(p); -} - -void* RNewAllocator::mmap_alloc(mstate m, size_t nb) { - size_t mmsize = granularity_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK); - if (mmsize > nb) { /* Check for wrap around 0 */ - TUint8* mm = (TUint8*)(DIRECT_MMAP(mmsize)); - if (mm != CMFAIL) { - size_t offset = align_offset(chunk2mem(mm)); - size_t psize = mmsize - offset - MMAP_FOOT_PAD; - mchunkptr p = (mchunkptr)(mm + offset); - p->prev_foot = offset | IS_MMAPPED_BIT; - (p)->head = (psize|CINUSE_BIT); - mark_inuse_foot(m, p, psize); - chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD; - chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0; - - if (mm < m->least_addr) - m->least_addr = mm; - if ((m->footprint += mmsize) > m->max_footprint) - m->max_footprint = m->footprint; - assert(is_aligned(chunk2mem(p))); - check_mmapped_chunk(m, p); - return chunk2mem(p); - } - } - return 0; -} - - int RNewAllocator::sys_trim(mstate m, size_t pad) - { - size_t released = 0; - if (pad < MAX_REQUEST && is_initialized(m)) { - pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */ - - if (m->topsize > pad) { - /* Shrink top space in granularity-size units, keeping at least one */ - size_t unit = mparams.granularity; - size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit - SIZE_T_ONE) * unit; - msegmentptr sp = segment_holding(m, (TUint8*)m->top); - - if (!is_extern_segment(sp)) { - if (is_mmapped_segment(sp)) { - if (HAVE_MMAP && - sp->size >= extra && - !has_segment_link(m, sp)) { /* can't shrink if pinned */ - size_t newsize = sp->size - extra; - /* Prefer mremap, fall back to munmap */ - if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) || - (CALL_MUNMAP(sp->base + newsize, extra) == 0)) { - released = extra; - } - } - } - else if (HAVE_MORECORE) { - if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */ - extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit; - ACQUIRE_MORECORE_LOCK(m); - { - /* Make sure end of memory is where we last set it. */ - TUint8* old_br = (TUint8*)(CALL_MORECORE(0)); - if (old_br == sp->base + sp->size) { - TUint8* rel_br = (TUint8*)(CALL_MORECORE(-extra)); - TUint8* new_br = (TUint8*)(CALL_MORECORE(0)); - if (rel_br != CMFAIL && new_br < old_br) - released = old_br - new_br; - } - } - RELEASE_MORECORE_LOCK(m); - } - } - - if (released != 0) { - sp->size -= released; - m->footprint -= released; - init_top(m, m->top, m->topsize - released); - check_top_chunk(m, m->top); - } - } - - /* Unmap any unused mmapped segments */ - if (HAVE_MMAP) - released += release_unused_segments(m); - - /* On failure, disable autotrim to avoid repeated failed future calls */ - if (released == 0) - m->trim_check = MAX_SIZE_T; - } - - return (released != 0)? 1 : 0; - } - - inline int RNewAllocator::has_segment_link(mstate m, msegmentptr ss) - { - msegmentptr sp = &m->seg; - for (;;) { - if ((TUint8*)sp >= ss->base && (TUint8*)sp < ss->base + ss->size) - return 1; - if ((sp = sp->next) == 0) - return 0; - } - } - - /* Unmap and unlink any mmapped segments that don't contain used chunks */ - size_t RNewAllocator::release_unused_segments(mstate m) - { - size_t released = 0; - msegmentptr pred = &m->seg; - msegmentptr sp = pred->next; - while (sp != 0) { - TUint8* base = sp->base; - size_t size = sp->size; - msegmentptr next = sp->next; - if (is_mmapped_segment(sp) && !is_extern_segment(sp)) { - mchunkptr p = align_as_chunk(base); - size_t psize = chunksize(p); - /* Can unmap if first chunk holds entire segment and not pinned */ - if (!cinuse(p) && (TUint8*)p + psize >= base + size - TOP_FOOT_SIZE) { - tchunkptr tp = (tchunkptr)p; - assert(segment_holds(sp, (TUint8*)sp)); - if (p == m->dv) { - m->dv = 0; - m->dvsize = 0; - } - else { - unlink_large_chunk(m, tp); - } - if (CALL_MUNMAP(base, size) == 0) { - released += size; - m->footprint -= size; - /* unlink obsoleted record */ - sp = pred; - sp->next = next; - } - else { /* back out if cannot unmap */ - insert_large_chunk(m, tp, psize); - } - } - } - pred = sp; - sp = next; - }/*End of while*/ - return released; - } - /* Realloc using mmap */ - inline mchunkptr RNewAllocator::mmap_resize(mstate m, mchunkptr oldp, size_t nb) - { - size_t oldsize = chunksize(oldp); - if (is_small(nb)) /* Can't shrink mmap regions below small size */ - return 0; - /* Keep old chunk if big enough but not too big */ - if (oldsize >= nb + SIZE_T_SIZE && - (oldsize - nb) <= (mparams.granularity << 1)) - return oldp; - else { - size_t offset = oldp->prev_foot & ~IS_MMAPPED_BIT; - size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD; - size_t newmmsize = granularity_align(nb + SIX_SIZE_T_SIZES + - CHUNK_ALIGN_MASK); - TUint8* cp = (TUint8*)CALL_MREMAP((char*)oldp - offset, - oldmmsize, newmmsize, 1); - if (cp != CMFAIL) { - mchunkptr newp = (mchunkptr)(cp + offset); - size_t psize = newmmsize - offset - MMAP_FOOT_PAD; - newp->head = (psize|CINUSE_BIT); - mark_inuse_foot(m, newp, psize); - chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD; - chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0; - - if (cp < m->least_addr) - m->least_addr = cp; - if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint) - m->max_footprint = m->footprint; - check_mmapped_chunk(m, newp); - return newp; - } - } - return 0; - } - - -void RNewAllocator::Init_Dlmalloc(size_t capacity, int locked, size_t aTrimThreshold) - { - memset(gm,0,sizeof(malloc_state)); - init_mparams(aTrimThreshold); /* Ensure pagesize etc initialized */ - // The maximum amount that can be allocated can be calculated as:- - // 2^sizeof(size_t) - sizeof(malloc_state) - TOP_FOOT_SIZE - page size (all accordingly padded) - // If the capacity exceeds this, no allocation will be done. - gm->seg.base = gm->least_addr = iBase; - gm->seg.size = capacity; - gm->seg.sflags = !IS_MMAPPED_BIT; - set_lock(gm, locked); - gm->magic = mparams.magic; - init_bins(gm); - init_top(gm, (mchunkptr)iBase, capacity - TOP_FOOT_SIZE); - } - -void* RNewAllocator::dlmalloc(size_t bytes) { - /* - Basic algorithm: - If a small request (< 256 bytes minus per-chunk overhead): - 1. If one exists, use a remainderless chunk in associated smallbin. - (Remainderless means that there are too few excess bytes to - represent as a chunk.) - 2. If it is big enough, use the dv chunk, which is normally the - chunk adjacent to the one used for the most recent small request. - 3. If one exists, split the smallest available chunk in a bin, - saving remainder in dv. - 4. If it is big enough, use the top chunk. - 5. If available, get memory from system and use it - Otherwise, for a large request: - 1. Find the smallest available binned chunk that fits, and use it - if it is better fitting than dv chunk, splitting if necessary. - 2. If better fitting than any binned chunk, use the dv chunk. - 3. If it is big enough, use the top chunk. - 4. If request size >= mmap threshold, try to directly mmap this chunk. - 5. If available, get memory from system and use it - - The ugly goto's here ensure that postaction occurs along all paths. - */ - if (!PREACTION(gm)) { - void* mem; - size_t nb; - if (bytes <= MAX_SMALL_REQUEST) { - bindex_t idx; - binmap_t smallbits; - nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes); - idx = small_index(nb); - smallbits = gm->smallmap >> idx; - - if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */ - mchunkptr b, p; - idx += ~smallbits & 1; /* Uses next bin if idx empty */ - b = smallbin_at(gm, idx); - p = b->fd; - assert(chunksize(p) == small_index2size(idx)); - unlink_first_small_chunk(gm, b, p, idx); - set_inuse_and_pinuse(gm, p, small_index2size(idx)); - mem = chunk2mem(p); - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - - else if (nb > gm->dvsize) { - if (smallbits != 0) { /* Use chunk in next nonempty smallbin */ - mchunkptr b, p, r; - size_t rsize; - bindex_t i; - binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx)); - binmap_t leastbit = least_bit(leftbits); - compute_bit2idx(leastbit, i); - b = smallbin_at(gm, i); - p = b->fd; - assert(chunksize(p) == small_index2size(i)); - unlink_first_small_chunk(gm, b, p, i); - rsize = small_index2size(i) - nb; - /* Fit here cannot be remainderless if 4byte sizes */ - if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) - set_inuse_and_pinuse(gm, p, small_index2size(i)); - else { - set_size_and_pinuse_of_inuse_chunk(gm, p, nb); - r = chunk_plus_offset(p, nb); - set_size_and_pinuse_of_free_chunk(r, rsize); - replace_dv(gm, r, rsize); - } - mem = chunk2mem(p); - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - - else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) { - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - } - } - else if (bytes >= MAX_REQUEST) - nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */ - else { - nb = pad_request(bytes); - if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) { - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - } - - if (nb <= gm->dvsize) { - size_t rsize = gm->dvsize - nb; - mchunkptr p = gm->dv; - if (rsize >= MIN_CHUNK_SIZE) { /* split dv */ - mchunkptr r = gm->dv = chunk_plus_offset(p, nb); - gm->dvsize = rsize; - set_size_and_pinuse_of_free_chunk(r, rsize); - set_size_and_pinuse_of_inuse_chunk(gm, p, nb); - } - else { /* exhaust dv */ - size_t dvs = gm->dvsize; - gm->dvsize = 0; - gm->dv = 0; - set_inuse_and_pinuse(gm, p, dvs); - } - mem = chunk2mem(p); - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - - else if (nb < gm->topsize) { /* Split top */ - size_t rsize = gm->topsize -= nb; - mchunkptr p = gm->top; - mchunkptr r = gm->top = chunk_plus_offset(p, nb); - r->head = rsize | PINUSE_BIT; - set_size_and_pinuse_of_inuse_chunk(gm, p, nb); - mem = chunk2mem(p); - check_top_chunk(gm, gm->top); - check_malloced_chunk(gm, mem, nb); - goto postaction; - } - - mem = sys_alloc(gm, nb); - - postaction: - POSTACTION(gm); - return mem; - } - - return 0; -} - -void RNewAllocator::dlfree(void* mem) { - /* - Consolidate freed chunks with preceeding or succeeding bordering - free chunks, if they exist, and then place in a bin. Intermixed - with special cases for top, dv, mmapped chunks, and usage errors. - */ - - if (mem != 0) - { - mchunkptr p = mem2chunk(mem); -#if FOOTERS - mstate fm = get_mstate_for(p); - if (!ok_magic(fm)) - { - USAGE_ERROR_ACTION(fm, p); - return; - } -#else /* FOOTERS */ -#define fm gm -#endif /* FOOTERS */ - - if (!PREACTION(fm)) - { - check_inuse_chunk(fm, p); - if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) - { - size_t psize = chunksize(p); - iTotalAllocSize -= psize; - mchunkptr next = chunk_plus_offset(p, psize); - if (!pinuse(p)) - { - size_t prevsize = p->prev_foot; - if ((prevsize & IS_MMAPPED_BIT) != 0) - { - prevsize &= ~IS_MMAPPED_BIT; - psize += prevsize + MMAP_FOOT_PAD; - /*TInt tmp = TOP_FOOT_SIZE; - TUint8* top = (TUint8*)fm->top + fm->topsize + 40; - if((top == (TUint8*)p)&& fm->topsize > 4096) - { - fm->topsize += psize; - msegmentptr sp = segment_holding(fm, (TUint8*)fm->top); - sp->size+=psize; - if (should_trim(fm, fm->topsize)) - sys_trim(fm, 0); - goto postaction; - } - else*/ - { - if (CALL_MUNMAP((char*)p - prevsize, psize) == 0) - fm->footprint -= psize; - goto postaction; - } - } - else - { - mchunkptr prev = chunk_minus_offset(p, prevsize); - psize += prevsize; - p = prev; - if (RTCHECK(ok_address(fm, prev))) - { /* consolidate backward */ - if (p != fm->dv) - { - unlink_chunk(fm, p, prevsize); - } - else if ((next->head & INUSE_BITS) == INUSE_BITS) - { - fm->dvsize = psize; - set_free_with_pinuse(p, psize, next); - goto postaction; - } - } - else - goto erroraction; - } - } - - if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) - { - if (!cinuse(next)) - { /* consolidate forward */ - if (next == fm->top) - { - size_t tsize = fm->topsize += psize; - fm->top = p; - p->head = tsize | PINUSE_BIT; - if (p == fm->dv) - { - fm->dv = 0; - fm->dvsize = 0; - } - if (should_trim(fm, tsize)) - sys_trim(fm, 0); - goto postaction; - } - else if (next == fm->dv) - { - size_t dsize = fm->dvsize += psize; - fm->dv = p; - set_size_and_pinuse_of_free_chunk(p, dsize); - goto postaction; - } - else - { - size_t nsize = chunksize(next); - psize += nsize; - unlink_chunk(fm, next, nsize); - set_size_and_pinuse_of_free_chunk(p, psize); - if (p == fm->dv) - { - fm->dvsize = psize; - goto postaction; - } - } - } - else - set_free_with_pinuse(p, psize, next); - insert_chunk(fm, p, psize); - check_free_chunk(fm, p); - goto postaction; - } - } -erroraction: - USAGE_ERROR_ACTION(fm, p); -postaction: - POSTACTION(fm); - } - } -#if !FOOTERS -#undef fm -#endif /* FOOTERS */ -} - -void* RNewAllocator::dlrealloc(void* oldmem, size_t bytes) { - if (oldmem == 0) - return dlmalloc(bytes); -#ifdef REALLOC_ZERO_BYTES_FREES - if (bytes == 0) { - dlfree(oldmem); - return 0; - } -#endif /* REALLOC_ZERO_BYTES_FREES */ - else { -#if ! FOOTERS - mstate m = gm; -#else /* FOOTERS */ - mstate m = get_mstate_for(mem2chunk(oldmem)); - if (!ok_magic(m)) { - USAGE_ERROR_ACTION(m, oldmem); - return 0; - } -#endif /* FOOTERS */ - return internal_realloc(m, oldmem, bytes); - } -} - - -int RNewAllocator::dlmalloc_trim(size_t pad) { - int result = 0; - if (!PREACTION(gm)) { - result = sys_trim(gm, pad); - POSTACTION(gm); - } - return result; -} - -size_t RNewAllocator::dlmalloc_footprint(void) { - return gm->footprint; -} - -size_t RNewAllocator::dlmalloc_max_footprint(void) { - return gm->max_footprint; -} - -#if !NO_MALLINFO -struct mallinfo RNewAllocator::dlmallinfo(void) { - return internal_mallinfo(gm); -} -#endif /* NO_MALLINFO */ - -void RNewAllocator::dlmalloc_stats() { - internal_malloc_stats(gm); -} - -int RNewAllocator::dlmallopt(int param_number, int value) { - return change_mparam(param_number, value); -} - -//inline slab* slab::slabfor(void* p) -inline slab* slab::slabfor( const void* p) - {return (slab*)(floor(p, slabsize));} - - -void RNewAllocator::tree_remove(slab* s) -{ - slab** r = s->parent; - slab* c1 = s->child1; - slab* c2 = s->child2; - for (;;) - { - if (!c2) - { - *r = c1; - if (c1) - c1->parent = r; - return; - } - if (!c1) - { - *r = c2; - c2->parent = r; - return; - } - if (c1 > c2) - { - slab* c3 = c1; - c1 = c2; - c2 = c3; - } - slab* newc2 = c1->child2; - *r = c1; - c1->parent = r; - c1->child2 = c2; - c2->parent = &c1->child2; - s = c1; - c1 = s->child1; - c2 = newc2; - r = &s->child1; - } -} -void RNewAllocator::tree_insert(slab* s,slab** r) - { - slab* n = *r; - for (;;) - { - if (!n) - { // tree empty - *r = s; - s->parent = r; - s->child1 = s->child2 = 0; - break; - } - if (s < n) - { // insert between parent and n - *r = s; - s->parent = r; - s->child1 = n; - s->child2 = 0; - n->parent = &s->child1; - break; - } - slab* c1 = n->child1; - slab* c2 = n->child2; - if (c1 < c2) - { - r = &n->child1; - n = c1; - } - else - { - r = &n->child2; - n = c2; - } - } - } -void* RNewAllocator::allocnewslab(slabset& allocator) -// -// Acquire and initialise a new slab, returning a cell from the slab -// The strategy is: -// 1. Use the lowest address free slab, if available. This is done by using the lowest slab -// in the page at the root of the partial_page heap (which is address ordered). If the -// is now fully used, remove it from the partial_page heap. -// 2. Allocate a new page for slabs if no empty slabs are available -// -{ - page* p = page::pagefor(partial_page); - if (!p) - return allocnewpage(allocator); - - unsigned h = p->slabs[0].header; - unsigned pagemap = header_pagemap(h); - ASSERT(&p->slabs[hibit(pagemap)] == partial_page); - - unsigned slabix = lowbit(pagemap); - p->slabs[0].header = h &~ (0x100<slabs[slabix]); -} - -/**Defination of this functionis not there in proto code***/ -#if 0 -void RNewAllocator::partial_insert(slab* s) - { - // slab has had first cell freed and needs to be linked back into partial tree - slabset& ss = slaballoc[sizemap[s->clz]]; - - ASSERT(s->used == slabfull); - s->used = ss.fulluse - s->clz; // full-1 loading - tree_insert(s,&ss.partial); - checktree(ss.partial); - } -/**Defination of this functionis not there in proto code***/ -#endif - -void* RNewAllocator::allocnewpage(slabset& allocator) -// -// Acquire and initialise a new page, returning a cell from a new slab -// The partial_page tree is empty (otherwise we'd have used a slab from there) -// The partial_page link is put in the highest addressed slab in the page, and the -// lowest addressed slab is used to fulfill the allocation request -// -{ - page* p = spare_page; - if (p) - spare_page = 0; - else - { - p = static_cast(map(0,pagesize)); - if (!p) - return 0; - } - ASSERT(p == floor(p,pagesize)); - p->slabs[0].header = ((1<<3) + (1<<2) + (1<<1))<<8; // set pagemap - p->slabs[3].parent = &partial_page; - p->slabs[3].child1 = p->slabs[3].child2 = 0; - partial_page = &p->slabs[3]; - return initnewslab(allocator,&p->slabs[0]); -} - -void RNewAllocator::freepage(page* p) -// -// Release an unused page to the OS -// A single page is cached for reuse to reduce thrashing -// the OS allocator. -// -{ - ASSERT(ceiling(p,pagesize) == p); - if (!spare_page) - { - spare_page = p; - return; - } - unmap(p,pagesize); -} - -void RNewAllocator::freeslab(slab* s) -// -// Release an empty slab to the slab manager -// The strategy is: -// 1. The page containing the slab is checked to see the state of the other slabs in the page by -// inspecting the pagemap field in the header of the first slab in the page. -// 2. The pagemap is updated to indicate the new unused slab -// 3. If this is the only unused slab in the page then the slab header is used to add the page to -// the partial_page tree/heap -// 4. If all the slabs in the page are now unused the page is release back to the OS -// 5. If this slab has a higher address than the one currently used to track this page in -// the partial_page heap, the linkage is moved to the new unused slab -// -{ - tree_remove(s); - checktree(*s->parent); - ASSERT(header_usedm4(s->header) == header_size(s->header)-4); - CHECK(s->header |= 0xFF00000); // illegal value for debug purposes - page* p = page::pagefor(s); - unsigned h = p->slabs[0].header; - int slabix = s - &p->slabs[0]; - unsigned pagemap = header_pagemap(h); - p->slabs[0].header = h | (0x100<slabs[hibit(pagemap)]; - pagemap ^= (1< sl) - { // replace current link with new one. Address-order tree so position stays the same - slab** r = sl->parent; - slab* c1 = sl->child1; - slab* c2 = sl->child2; - s->parent = r; - s->child1 = c1; - s->child2 = c2; - *r = s; - if (c1) - c1->parent = &s->child1; - if (c2) - c2->parent = &s->child2; - } - CHECK(if (s < sl) s=sl); - } - ASSERT(header_pagemap(p->slabs[0].header) != 0); - ASSERT(hibit(header_pagemap(p->slabs[0].header)) == unsigned(s - &p->slabs[0])); -} - -void RNewAllocator::slab_init() -{ - slab_threshold=0; - partial_page = 0; - spare_page = 0; - memset(&sizemap[0],0xff,sizeof(sizemap)); - memset(&slaballoc[0],0,sizeof(slaballoc)); -} - -void RNewAllocator::slab_config(unsigned slabbitmap) -{ - ASSERT((slabbitmap & ~okbits) == 0); - ASSERT(maxslabsize <= 60); - - unsigned char ix = 0xff; - unsigned bit = 1<<((maxslabsize>>2)-1); - for (int sz = maxslabsize; sz >= 0; sz -= 4, bit >>= 1) - { - if (slabbitmap & bit) - { - if (ix == 0xff) - slab_threshold=sz+1; - ix = (sz>>2)-1; - } - sizemap[sz>>2] = ix; - } -} - -void* RNewAllocator::slab_allocate(slabset& ss) -// -// Allocate a cell from the given slabset -// Strategy: -// 1. Take the partially full slab at the top of the heap (lowest address). -// 2. If there is no such slab, allocate from a new slab -// 3. If the slab has a non-empty freelist, pop the cell from the front of the list and update the slab -// 4. Otherwise, if the slab is not full, return the cell at the end of the currently used region of -// the slab, updating the slab -// 5. Otherwise, release the slab from the partial tree/heap, marking it as 'floating' and go back to -// step 1 -// -{ - for (;;) - { - slab *s = ss.partial; - if (!s) - break; - unsigned h = s->header; - unsigned free = h & 0xff; // extract free cell positiong - if (free) - { - ASSERT(((free<<2)-sizeof(slabhdr))%header_size(h) == 0); - void* p = offset(s,free<<2); - free = *(unsigned char*)p; // get next pos in free list - h += (h&0x3C000)<<6; // update usedm4 - h &= ~0xff; - h |= free; // update freelist - s->header = h; - ASSERT(header_free(h) == 0 || ((header_free(h)<<2)-sizeof(slabhdr))%header_size(h) == 0); - ASSERT(header_usedm4(h) <= 0x3F8u); - ASSERT((header_usedm4(h)+4)%header_size(h) == 0); - return p; - } - unsigned h2 = h + ((h&0x3C000)<<6); - if (h2 < 0xfc00000) - { - ASSERT((header_usedm4(h2)+4)%header_size(h2) == 0); - s->header = h2; - return offset(s,(h>>18) + sizeof(unsigned) + sizeof(slabhdr)); - } - h |= 0x80000000; // mark the slab as full-floating - s->header = h; - tree_remove(s); - checktree(ss.partial); - // go back and try the next slab... - } - // no partial slabs found, so allocate from a new slab - return allocnewslab(ss); -} - -void RNewAllocator::slab_free(void* p) -// -// Free a cell from the slab allocator -// Strategy: -// 1. Find the containing slab (round down to nearest 1KB boundary) -// 2. Push the cell into the slab's freelist, and update the slab usage count -// 3. If this is the last allocated cell, free the slab to the main slab manager -// 4. If the slab was full-floating then insert the slab in it's respective partial tree -// -{ - ASSERT(lowbits(p,3)==0); - slab* s = slab::slabfor(p); - - unsigned pos = lowbits(p, slabsize); - unsigned h = s->header; - ASSERT(header_usedm4(h) != 0x3fC); // slab is empty already - ASSERT((pos-sizeof(slabhdr))%header_size(h) == 0); - *(unsigned char*)p = (unsigned char)h; - h &= ~0xFF; - h |= (pos>>2); - unsigned size = h & 0x3C000; - iTotalAllocSize -= size; - if (int(h) >= 0) - { - h -= size<<6; - if (int(h)>=0) - { - s->header = h; - return; - } - freeslab(s); - return; - } - h -= size<<6; - h &= ~0x80000000; - s->header = h; - slabset& ss = slaballoc[(size>>14)-1]; - tree_insert(s,&ss.partial); - checktree(ss.partial); -} - -void* RNewAllocator::initnewslab(slabset& allocator, slab* s) -// -// initialise an empty slab for this allocator and return the fist cell -// pre-condition: the slabset has no partial slabs for allocation -// -{ - ASSERT(allocator.partial==0); - TInt size = 4 + ((&allocator-&slaballoc[0])<<2); // infer size from slab allocator address - unsigned h = s->header & 0xF00; // preserve pagemap only - h |= (size<<12); // set size - h |= (size-4)<<18; // set usedminus4 to one object minus 4 - s->header = h; - allocator.partial = s; - s->parent = &allocator.partial; - s->child1 = s->child2 = 0; - return offset(s,sizeof(slabhdr)); -} - -TAny* RNewAllocator::SetBrk(TInt32 aDelta) -{ - if (iFlags & EFixedSize) - return MFAIL; - - if (aDelta < 0) - { - unmap(offset(iTop, aDelta), -aDelta); - } - else if (aDelta > 0) - { - if (!map(iTop, aDelta)) - return MFAIL; - } - void * p =iTop; - iTop = offset(iTop, aDelta); - return p; -} - -void* RNewAllocator::map(void* p,unsigned sz) -// -// allocate pages in the chunk -// if p is NULL, find an allocate the required number of pages (which must lie in the lower half) -// otherwise commit the pages specified -// -{ -ASSERT(p == floor(p, pagesize)); -ASSERT(sz == ceiling(sz, pagesize)); -ASSERT(sz > 0); - - if (iChunkSize + sz > iMaxLength) - return 0; - - RChunk chunk; - chunk.SetHandle(iChunkHandle); - if (p) - { - TInt r = chunk.Commit(iOffset + ptrdiff(p, this),sz); - if (r < 0) - return 0; - //ASSERT(p = offset(this, r - iOffset)); - } - else - { - TInt r = chunk.Allocate(sz); - if (r < 0) - return 0; - if (r > iOffset) - { - // can't allow page allocations in DL zone - chunk.Decommit(r, sz); - return 0; - } - p = offset(this, r - iOffset); - } - iChunkSize += sz; -#ifdef TRACING_HEAPS - if(iChunkSize > iHighWaterMark) - { - iHighWaterMark = ceiling(iChunkSize,16*pagesize); - - - RChunk chunk; - chunk.SetHandle(iChunkHandle); - TKName chunk_name; - chunk.FullName(chunk_name); - BTraceContextBig(BTrace::ETest1, 4, 44, chunk_name.Ptr(), chunk_name.Size()); - - TUint32 traceData[6]; - traceData[0] = iChunkHandle; - traceData[1] = iMinLength; - traceData[2] = iMaxLength; - traceData[3] = sz; - traceData[4] = iChunkSize; - traceData[5] = iHighWaterMark; - BTraceContextN(BTrace::ETest1, 3, (TUint32)this, 33, traceData, sizeof(traceData)); - } -#endif - if (iChunkSize >= slab_init_threshold) - { // set up slab system now that heap is large enough - slab_config(slab_config_bits); - slab_init_threshold = KMaxTUint; - } - return p; -} - -void* RNewAllocator::remap(void* p,unsigned oldsz,unsigned sz) -{ - if (oldsz > sz) - { // shrink - unmap(offset(p,sz), oldsz-sz); - } - else if (oldsz < sz) - { // grow, try and do this in place first - if (!map(offset(p, oldsz), sz-oldsz)) - { - // need to allocate-copy-free - void* newp = map(0, sz); - memcpy(newp, p, oldsz); - unmap(p,oldsz); - return newp; - } - } - return p; -} - -void RNewAllocator::unmap(void* p,unsigned sz) -{ - ASSERT(p == floor(p, pagesize)); - ASSERT(sz == ceiling(sz, pagesize)); - ASSERT(sz > 0); - - RChunk chunk; - chunk.SetHandle(iChunkHandle); - TInt r = chunk.Decommit(ptrdiff(p, offset(this,-iOffset)), sz); - //TInt offset = (TUint8*)p-(TUint8*)chunk.Base(); - //TInt r = chunk.Decommit(offset,sz); - - ASSERT(r >= 0); - iChunkSize -= sz; -} - -void RNewAllocator::paged_init(unsigned pagepower) - { - if (pagepower == 0) - pagepower = 31; - else if (pagepower < minpagepower) - pagepower = minpagepower; - page_threshold = pagepower; - for (int i=0;ipage == 0) - { - void* p = map(0, nbytes); - if (!p) - return 0; - c->page = p; - c->size = nbytes; - return p; - } - } - // use a cell header - nbytes = ceiling(size + cellalign, pagesize); - void* p = map(0, nbytes); - if (!p) - return 0; - *static_cast(p) = nbytes; - return offset(p, cellalign); -} - -void* RNewAllocator::paged_reallocate(void* p, unsigned size) -{ - if (lowbits(p, pagesize) == 0) - { // continue using descriptor - pagecell* c = paged_descriptor(p); - unsigned nbytes = ceiling(size, pagesize); - void* newp = remap(p, c->size, nbytes); - if (!newp) - return 0; - c->page = newp; - c->size = nbytes; - return newp; - } - else - { // use a cell header - ASSERT(lowbits(p,pagesize) == cellalign); - p = offset(p,-int(cellalign)); - unsigned nbytes = ceiling(size + cellalign, pagesize); - unsigned obytes = *static_cast(p); - void* newp = remap(p, obytes, nbytes); - if (!newp) - return 0; - *static_cast(newp) = nbytes; - return offset(newp, cellalign); - } -} - -void RNewAllocator::paged_free(void* p) -{ - if (lowbits(p,pagesize) == 0) - { // check pagelist - pagecell* c = paged_descriptor(p); - - iTotalAllocSize -= c->size; - - unmap(p, c->size); - c->page = 0; - c->size = 0; - } - else - { // check page header - unsigned* page = static_cast(offset(p,-int(cellalign))); - unsigned size = *page; - unmap(page,size); - } -} - -pagecell* RNewAllocator::paged_descriptor(const void* p) const -{ - ASSERT(lowbits(p,pagesize) == 0); - // Double casting to keep the compiler happy. Seems to think we can trying to - // change a non-const member (pagelist) in a const function - pagecell* c = (pagecell*)((void*)pagelist); - pagecell* e = c + npagecells; - for (;;) - { - ASSERT(c!=e); - if (c->page == p) - return c; - ++c; - } -} - -RNewAllocator* RNewAllocator::FixedHeap(TAny* aBase, TInt aMaxLength, TInt aAlign, TBool aSingleThread) -/** -Creates a fixed length heap at a specified location. - -On successful return from this function, aMaxLength bytes are committed by the chunk. -The heap cannot be extended. - -@param aBase A pointer to the location where the heap is to be constructed. -@param aMaxLength The length of the heap. If the supplied value is less - than KMinHeapSize, it is discarded and the value KMinHeapSize - is used instead. -@param aAlign The alignment of heap cells. -@param aSingleThread Indicates whether single threaded or not. - -@return A pointer to the new heap, or NULL if the heap could not be created. - -@panic USER 56 if aMaxLength is negative. -*/ -// -// Force construction of the fixed memory. -// - { - - __ASSERT_ALWAYS(aMaxLength>=0, ::Panic(ETHeapMaxLengthNegative)); - if (aMaxLengthiLock.CreateLocal(); - if (r!=KErrNone) - return NULL; - h->iHandles = (TInt*)&h->iLock; - h->iHandleCount = 1; - } - return h; - } - -RNewAllocator* RNewAllocator::ChunkHeap(const TDesC* aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread) -/** -Creates a heap in a local or global chunk. - -The chunk hosting the heap can be local or global. - -A local chunk is one which is private to the process creating it and is not -intended for access by other user processes. -A global chunk is one which is visible to all processes. - -The hosting chunk is local, if the pointer aName is NULL, otherwise -the hosting chunk is global and the descriptor *aName is assumed to contain -the name to be assigned to it. - -Ownership of the host chunk is vested in the current process. - -A minimum and a maximum size for the heap can be specified. On successful -return from this function, the size of the heap is at least aMinLength. -If subsequent requests for allocation of memory from the heap cannot be -satisfied by compressing the heap, the size of the heap is extended in -increments of aGrowBy until the request can be satisfied. Attempts to extend -the heap causes the size of the host chunk to be adjusted. - -Note that the size of the heap cannot be adjusted by more than aMaxLength. - -@param aName If NULL, the function constructs a local chunk to host - the heap. - If not NULL, a pointer to a descriptor containing the name - to be assigned to the global chunk hosting the heap. -@param aMinLength The minimum length of the heap. -@param aMaxLength The maximum length to which the heap can grow. - If the supplied value is less than KMinHeapSize, then it - is discarded and the value KMinHeapSize used instead. -@param aGrowBy The increments to the size of the host chunk. If a value is - not explicitly specified, the value KMinHeapGrowBy is taken - by default -@param aAlign The alignment of heap cells. -@param aSingleThread Indicates whether single threaded or not. - -@return A pointer to the new heap or NULL if the heap could not be created. - -@panic USER 41 if aMinLength is greater than the supplied value of aMaxLength. -@panic USER 55 if aMinLength is negative. -@panic USER 56 if aMaxLength is negative. -*/ -// -// Allocate a Chunk of the requested size and force construction. -// - { - - __ASSERT_ALWAYS(aMinLength>=0, ::Panic(ETHeapMinLengthNegative)); - __ASSERT_ALWAYS(aMaxLength>=aMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); - if (aMaxLength=0, ::Panic(ETHeapMinLengthNegative)); - __ASSERT_ALWAYS(maxLength>=aMinLength, ::Panic(ETHeapCreateMaxLessThanMin)); - aMinLength = _ALIGN_UP(Max(aMinLength, (TInt)sizeof(RNewAllocator) + min_cell) + aOffset, round_up); - - // the new allocator uses a disconnected chunk so must commit the initial allocation - // with Commit() instead of Adjust() - // TInt r=aChunk.Adjust(aMinLength); - //TInt r = aChunk.Commit(aOffset, aMinLength); - - aOffset = maxLength; - //TInt MORE_CORE_OFFSET = maxLength/2; - //TInt r = aChunk.Commit(MORE_CORE_OFFSET, aMinLength); - TInt r = aChunk.Commit(aOffset, aMinLength); - - if (r!=KErrNone) - return NULL; - - RNewAllocator* h = new (aChunk.Base() + aOffset) RNewAllocator(aChunk.Handle(), aOffset, aMinLength, maxLength, aGrowBy, aAlign, aSingleThread); - //RNewAllocator* h = new (aChunk.Base() + MORE_CORE_OFFSET) RNewAllocator(aChunk.Handle(), aOffset, aMinLength, maxLength, aGrowBy, aAlign, aSingleThread); - - TBool duplicateLock = EFalse; - if (!aSingleThread) - { - duplicateLock = aMode & UserHeap::EChunkHeapSwitchTo; - if(h->iLock.CreateLocal(duplicateLock ? EOwnerThread : EOwnerProcess)!=KErrNone) - { - h->iChunkHandle = 0; - return NULL; - } - } - - if (aMode & UserHeap::EChunkHeapSwitchTo) - User::SwitchHeap(h); - - h->iHandles = &h->iChunkHandle; - if (!aSingleThread) - { - // now change the thread-relative chunk/semaphore handles into process-relative handles - h->iHandleCount = 2; - if(duplicateLock) - { - RHandleBase s = h->iLock; - r = h->iLock.Duplicate(RThread()); - s.Close(); - } - if (r==KErrNone && (aMode & UserHeap::EChunkHeapDuplicate)) - { - r = ((RChunk*)&h->iChunkHandle)->Duplicate(RThread()); - if (r!=KErrNone) - h->iLock.Close(), h->iChunkHandle=0; - } - } - else - { - h->iHandleCount = 1; - if (aMode & UserHeap::EChunkHeapDuplicate) - r = ((RChunk*)&h->iChunkHandle)->Duplicate(RThread(), EOwnerThread); - } - - // return the heap address - return (r==KErrNone) ? h : NULL; - } - - -#define UserTestDebugMaskBit(bit) (TBool)(UserSvr::DebugMask(bit>>5) & (1<<(bit&31))) - -#ifndef NO_NAMED_LOCAL_CHUNKS -//this class requires Symbian^3 for ElocalNamed - -// Hack to get access to TChunkCreateInfo internals outside of the kernel -class TFakeChunkCreateInfo: public TChunkCreateInfo - { -public: - void SetThreadNewAllocator(TInt aInitialSize, TInt aMaxSize, const TDesC& aName) - { - iType = TChunkCreate::ENormal | TChunkCreate::EDisconnected | TChunkCreate::EData; - iMaxSize = aMaxSize * 2; - - iInitialBottom = 0; - iInitialTop = aInitialSize; - iAttributes = TChunkCreate::ELocalNamed; - iName = &aName; - iOwnerType = EOwnerThread; - } - }; -#endif - -#ifndef NO_NAMED_LOCAL_CHUNKS -_LIT(KLitDollarHeap,"$HEAP"); -#endif -TInt RNewAllocator::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAllocator*& aHeap, TInt aAlign, TBool aSingleThread) -/** -@internalComponent -*/ -// -// Create a user-side heap -// - { - TInt page_size = malloc_getpagesize; - TInt minLength = _ALIGN_UP(aInfo.iHeapInitialSize, page_size); - TInt maxLength = Max(aInfo.iHeapMaxSize, minLength); -#ifdef TRACING_ALLOCS - if (UserTestDebugMaskBit(96)) // 96 == KUSERHEAPTRACE in nk_trace.h - aInfo.iFlags |= ETraceHeapAllocs; -#endif - // Create the thread's heap chunk. - RChunk c; -#ifndef NO_NAMED_LOCAL_CHUNKS - TFakeChunkCreateInfo createInfo; - createInfo.SetThreadNewAllocator(0, maxLength, KLitDollarHeap()); // Initialise with no memory committed. - TInt r = c.Create(createInfo); -#else - TInt r = c.CreateDisconnectedLocal(0, 0, maxLength * 2); -#endif - if (r!=KErrNone) - return r; - aHeap = ChunkHeap(c, minLength, page_size, maxLength, aAlign, aSingleThread, UserHeap::EChunkHeapSwitchTo|UserHeap::EChunkHeapDuplicate); - c.Close(); - if (!aHeap) - return KErrNoMemory; -#ifdef TRACING_ALLOCS - if (aInfo.iFlags & ETraceHeapAllocs) - { - aHeap->iFlags |= RAllocator::ETraceAllocs; - BTraceContext8(BTrace::EHeap, BTrace::EHeapCreate,(TUint32)aHeap, RNewAllocator::EAllocCellSize); - TInt handle = aHeap->ChunkHandle(); - TInt chunkId = ((RHandleBase&)handle).BTraceId(); - BTraceContext8(BTrace::EHeap, BTrace::EHeapChunkCreate, (TUint32)aHeap, chunkId); - } -#endif - return KErrNone; - } - -/* - * \internal - * Called from the qtmain.lib application wrapper. - * Create a new heap as requested, but use the new allocator - */ -Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool /*aNotFirst*/, SStdEpocThreadCreateInfo& aInfo) - { - TInt r = KErrNone; - if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) - { - // new heap required - RNewAllocator* pH = NULL; - r = RNewAllocator::CreateThreadHeap(aInfo, pH); - } - else if (aInfo.iAllocator) - { - // sharing a heap - RAllocator* pA = aInfo.iAllocator; - pA->Open(); - User::SwitchAllocator(pA); - } - return r; - } - -#else -/* - * \internal - * Called from the qtmain.lib application wrapper. - * Create a new heap as requested, using the default system allocator - */ -Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) -{ - return UserHeap::SetupThreadHeap(aNotFirst, aInfo); -} -#endif - -#ifndef __WINS__ -#pragma pop -#endif diff --git a/src/corelib/arch/symbian/newallocator_p.h b/src/corelib/arch/symbian/newallocator_p.h deleted file mode 100644 index fd28f2d..0000000 --- a/src/corelib/arch/symbian/newallocator_p.h +++ /dev/null @@ -1,338 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the Symbian application wrapper of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -** The memory allocator is backported from Symbian OS, and can eventually -** be removed from Qt once it is built in to all supported OS versions. -** The allocator is a composite of three allocators: -** - A page allocator, for large allocations -** - A slab allocator, for small allocations -** - Doug Lea's allocator, for medium size allocations -****************************************************************************/ -#ifndef NEWALLOCATOR_H -#define NEWALLOCATOR_H - -class RNewAllocator : public RAllocator - { -public: - enum{EAllocCellSize = 8}; - - virtual TAny* Alloc(TInt aSize); - virtual void Free(TAny* aPtr); - virtual TAny* ReAlloc(TAny* aPtr, TInt aSize, TInt aMode=0); - virtual TInt AllocLen(const TAny* aCell) const; - virtual TInt Compress(); - virtual void Reset(); - virtual TInt AllocSize(TInt& aTotalAllocSize) const; - virtual TInt Available(TInt& aBiggestBlock) const; - virtual TInt DebugFunction(TInt aFunc, TAny* a1=NULL, TAny* a2=NULL); -protected: - virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1); - -public: - TInt Size() const - { return iChunkSize; } - - inline TInt MaxLength() const; - inline TUint8* Base() const; - inline TInt Align(TInt a) const; - inline const TAny* Align(const TAny* a) const; - inline void Lock() const; - inline void Unlock() const; - inline TInt ChunkHandle() const; - - /** - @internalComponent - */ - struct _s_align {char c; double d;}; - - /** - The structure of a heap cell header for a heap cell on the free list. - */ - struct SCell { - /** - The length of the cell, which includes the length of - this header. - */ - TInt len; - - - /** - A pointer to the next cell in the free list. - */ - SCell* next; - }; - - /** - The default cell alignment. - */ - enum {ECellAlignment = sizeof(_s_align)-sizeof(double)}; - - /** - Size of a free cell header. - */ - enum {EFreeCellSize = sizeof(SCell)}; - - /** - @internalComponent - */ - enum TDefaultShrinkRatios {EShrinkRatio1=256, EShrinkRatioDflt=512}; - -public: - RNewAllocator(TInt aMaxLength, TInt aAlign=0, TBool aSingleThread=ETrue); - RNewAllocator(TInt aChunkHandle, TInt aOffset, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign=0, TBool aSingleThread=EFalse); - inline RNewAllocator(); - - TAny* operator new(TUint aSize, TAny* aBase) __NO_THROW; - inline void operator delete(TAny*, TAny*); - -protected: - SCell* GetAddress(const TAny* aCell) const; - -public: - TInt iMinLength; - TInt iMaxLength; // maximum bytes used by the allocator in total - TInt iOffset; // offset of RNewAllocator object from chunk base - TInt iGrowBy; - - TInt iChunkHandle; // handle of chunk - RFastLock iLock; - TUint8* iBase; // bottom of DL memory, i.e. this+sizeof(RNewAllocator) - TUint8* iTop; // top of DL memory (page aligned) - TInt iAlign; - TInt iMinCell; - TInt iPageSize; - SCell iFree; -protected: - TInt iNestingLevel; - TInt iAllocCount; - TAllocFail iFailType; - TInt iFailRate; - TBool iFailed; - TInt iFailAllocCount; - TInt iRand; - TAny* iTestData; -protected: - TInt iChunkSize; // currently allocated bytes in the chunk (== chunk.Size()) - malloc_state iGlobalMallocState; - malloc_params mparams; - TInt iHighWaterMark; -private: - void Init(TInt aBitmapSlab, TInt aPagePower, size_t aTrimThreshold);/*Init internal data structures*/ - inline int init_mparams(size_t aTrimThreshold /*= DEFAULT_TRIM_THRESHOLD*/); - void init_bins(mstate m); - void init_top(mstate m, mchunkptr p, size_t psize); - void* sys_alloc(mstate m, size_t nb); - msegmentptr segment_holding(mstate m, TUint8* addr); - void add_segment(mstate m, TUint8* tbase, size_t tsize, flag_t mmapped); - int sys_trim(mstate m, size_t pad); - int has_segment_link(mstate m, msegmentptr ss); - size_t release_unused_segments(mstate m); - void* mmap_alloc(mstate m, size_t nb);/*Need to check this function*/ - void* prepend_alloc(mstate m, TUint8* newbase, TUint8* oldbase, size_t nb); - void* tmalloc_large(mstate m, size_t nb); - void* tmalloc_small(mstate m, size_t nb); - /*MACROS converted functions*/ - static inline void unlink_first_small_chunk(mstate M,mchunkptr B,mchunkptr P,bindex_t& I); - static inline void insert_small_chunk(mstate M,mchunkptr P, size_t S); - static inline void insert_chunk(mstate M,mchunkptr P,size_t S); - static inline void unlink_large_chunk(mstate M,tchunkptr X); - static inline void unlink_small_chunk(mstate M, mchunkptr P,size_t S); - static inline void unlink_chunk(mstate M, mchunkptr P, size_t S); - static inline void compute_tree_index(size_t S, bindex_t& I); - static inline void insert_large_chunk(mstate M,tchunkptr X,size_t S); - static inline void replace_dv(mstate M, mchunkptr P, size_t S); - static inline void compute_bit2idx(binmap_t X,bindex_t& I); - /*MACROS converted functions*/ - TAny* SetBrk(TInt32 aDelta); - void* internal_realloc(mstate m, void* oldmem, size_t bytes); - void internal_malloc_stats(mstate m); - int change_mparam(int param_number, int value); -#if !NO_MALLINFO - mallinfo internal_mallinfo(mstate m); -#endif - void Init_Dlmalloc(size_t capacity, int locked, size_t aTrimThreshold); - void* dlmalloc(size_t); - void dlfree(void*); - void* dlrealloc(void*, size_t); - int dlmallopt(int, int); - size_t dlmalloc_footprint(void); - size_t dlmalloc_max_footprint(void); - #if !NO_MALLINFO - struct mallinfo dlmallinfo(void); - #endif - int dlmalloc_trim(size_t); - size_t dlmalloc_usable_size(void*); - void dlmalloc_stats(void); - inline mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb); - - /****************************Code Added For DL heap**********************/ - friend TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); -private: - unsigned short slab_threshold; - unsigned short page_threshold; // 2^n is smallest cell size allocated in paged allocator - unsigned slab_init_threshold; - unsigned slab_config_bits; - slab* partial_page;// partial-use page tree - page* spare_page; // single empty page cached - unsigned char sizemap[(maxslabsize>>2)+1]; // index of slabset based on size class -private: - static void tree_remove(slab* s); - static void tree_insert(slab* s,slab** r); -public: - enum {okbits = (1<<(maxslabsize>>2))-1}; - void slab_init(); - void slab_config(unsigned slabbitmap); - void* slab_allocate(slabset& allocator); - void slab_free(void* p); - void* allocnewslab(slabset& allocator); - void* allocnewpage(slabset& allocator); - void* initnewslab(slabset& allocator, slab* s); - void freeslab(slab* s); - void freepage(page* p); - void* map(void* p,unsigned sz); - void* remap(void* p,unsigned oldsz,unsigned sz); - void unmap(void* p,unsigned sz); - /**I think we need to move this functions to slab allocator class***/ - static inline unsigned header_free(unsigned h) - {return (h&0x000000ff);} - static inline unsigned header_pagemap(unsigned h) - {return (h&0x00000f00)>>8;} - static inline unsigned header_size(unsigned h) - {return (h&0x0003f000)>>12;} - static inline unsigned header_usedm4(unsigned h) - {return (h&0x0ffc0000)>>18;} - /***paged allocator code***/ - void paged_init(unsigned pagepower); - void* paged_allocate(unsigned size); - void paged_free(void* p); - void* paged_reallocate(void* p, unsigned size); - pagecell* paged_descriptor(const void* p) const ; -private: - // paged allocator structures - enum {npagecells=4}; - pagecell pagelist[npagecells]; // descriptors for page-aligned large allocations - inline void TraceReAlloc(TAny* aPtr, TInt aSize, TAny* aNewPtr, TInt aZone); - inline void TraceCallStack(); - // to track maximum used - //TInt iHighWaterMark; - - slabset slaballoc[maxslabsize>>2]; - -private: - static RNewAllocator* FixedHeap(TAny* aBase, TInt aMaxLength, TInt aAlign, TBool aSingleThread); - static RNewAllocator* ChunkHeap(const TDesC* aName, TInt aMinLength, TInt aMaxLength, TInt aGrowBy, TInt aAlign, TBool aSingleThread); - static RNewAllocator* ChunkHeap(RChunk aChunk, TInt aMinLength, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode); - static RNewAllocator* OffsetChunkHeap(RChunk aChunk, TInt aMinLength, TInt aOffset, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode); - static TInt CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RNewAllocator*& aHeap, TInt aAlign = 0, TBool aSingleThread = EFalse); -}; - -inline RNewAllocator::RNewAllocator() - {} - -/** -@return The maximum length to which the heap can grow. - -@publishedAll -@released -*/ -inline TInt RNewAllocator::MaxLength() const - {return iMaxLength;} - -inline void RNewAllocator::operator delete(TAny*, TAny*) -/** -Called if constructor issued by operator new(TUint aSize, TAny* aBase) throws exception. -This is dummy as corresponding new operator does not allocate memory. -*/ - {} - - -inline TUint8* RNewAllocator::Base() const -/** -Gets a pointer to the start of the heap. - -Note that because of the small space overhead incurred by all allocated cells, -no cell will have the same address as that returned by this function. - -@return A pointer to the base of the heap. -*/ - {return iBase;} - - -inline TInt RNewAllocator::Align(TInt a) const -/** -@internalComponent -*/ - {return _ALIGN_UP(a, iAlign);} - - - - -inline const TAny* RNewAllocator::Align(const TAny* a) const -/** -@internalComponent -*/ - {return (const TAny*)_ALIGN_UP((TLinAddr)a, iAlign);} - - - -inline void RNewAllocator::Lock() const -/** -@internalComponent -*/ - {((RFastLock&)iLock).Wait();} - - - - -inline void RNewAllocator::Unlock() const -/** -@internalComponent -*/ - {((RFastLock&)iLock).Signal();} - - -inline TInt RNewAllocator::ChunkHandle() const -/** -@internalComponent -*/ - { - return iChunkHandle; - } - -#endif // NEWALLOCATOR_H diff --git a/src/corelib/arch/symbian/page_alloc_p.h b/src/corelib/arch/symbian/page_alloc_p.h new file mode 100644 index 0000000..5241d78 --- /dev/null +++ b/src/corelib/arch/symbian/page_alloc_p.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __KERNEL_MODE__ + +const int MAXSMALLPAGEBITS = 68<<3; +#define MINPAGEPOWER PAGESHIFT+2 + +struct paged_bitmap +{ + public: + inline paged_bitmap() : iBase(0), iNbits(0) {} + void Init(unsigned char* p, unsigned size, unsigned bit); +// + inline unsigned char* Addr() const; + inline unsigned Size() const; +// + inline void Set(unsigned ix, unsigned bit); + inline unsigned operator[](unsigned ix) const; + bool Is(unsigned ix, unsigned len, unsigned bit) const; + void Set(unsigned ix, unsigned len, unsigned val); + void Setn(unsigned ix, unsigned len, unsigned bit); + unsigned Bits(unsigned ix, unsigned len) const; // little endian + int Find(unsigned start, unsigned bit) const; + private: + unsigned char* iBase; + unsigned iNbits; +}; + +#endif // __KERNEL_MODE__ diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp new file mode 100644 index 0000000..3d92ccd --- /dev/null +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qt_hybridheap_symbian.h" + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +/* + * \internal + * Called from the qtmain.lib application wrapper. + * Create a new heap as requested, but use the new allocator + */ +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +{ + TInt r = KErrNone; + if (!aInfo.iAllocator && aInfo.iHeapInitialSize>0) + { + // new heap required + RHeap* pH = NULL; + r = UserHeap::CreateThreadHeap(aInfo, pH); + } + else if (aInfo.iAllocator) + { + // sharing a heap + RAllocator* pA = aInfo.iAllocator; + pA->Open(); + User::SwitchAllocator(pA); + } + return r; +} + +void TChunkCreateInfo::SetThreadHeap(TInt aInitialSize, TInt aMaxSize, const TDesC& aName) +{ + iType = TChunkCreate::ENormal | TChunkCreate::EData; + iMaxSize = aMaxSize; + iInitialBottom = 0; + iInitialTop = aInitialSize; + iAttributes |= TChunkCreate::ELocalNamed; + iName = &aName; + iOwnerType = EOwnerThread; +} + +void Panic(TCdtPanic reason) +{ + _LIT(KCat, "QtHybridHeap"); + User::Panic(KCat, reason); +} + +#else /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ + +/* + * \internal + * Called from the qtmain.lib application wrapper. + * Create a new heap as requested, using the default system allocator + */ +Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) +{ + return UserHeap::SetupThreadHeap(aNotFirst, aInfo); +} + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian.h new file mode 100644 index 0000000..872c4ec --- /dev/null +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_HYBRIDHEAP_SYMBIAN_H +#define QT_HYBRIDHEAP_SYMBIAN_H + +#include + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +#include "common_p.h" +#ifdef __KERNEL_MODE__ +#include +#endif +#include "dla_p.h" +#ifndef __KERNEL_MODE__ +#include "slab_p.h" +#include "page_alloc_p.h" +#endif +#include "heap_hybrid_p.h" + +// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols +#undef UIMPORT_C +#define UIMPORT_C +#undef IMPORT_C +#define IMPORT_C +#undef UEXPORT_C +#define UEXPORT_C +#undef EXPORT_C +#define EXPORT_C +#undef IMPORT_D +#define IMPORT_D + +#undef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ + +#endif /* QT_HYBRIDHEAP_SYMBIAN_H */ diff --git a/src/corelib/arch/symbian/slab_p.h b/src/corelib/arch/symbian/slab_p.h new file mode 100644 index 0000000..234a310 --- /dev/null +++ b/src/corelib/arch/symbian/slab_p.h @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef __KERNEL_MODE__ + +class slab; +class slabhdr; +#define MAXSLABSIZE 56 +#define PAGESHIFT 12 +#define PAGESIZE (1<>3) : ((unsigned) bits>>1)) + +#define LOWBIT(bits) (((unsigned) bits&3) ? 1 - ((unsigned)bits&1) : 3 - (((unsigned)bits>>2)&1)) + +#define ZEROBITS(header) (((unsigned)header & 0x70000000) ? 0 : 1) + +class slabhdr +{ + public: + unsigned iHeader; + // made up of + // bits | 31 | 30..28 | 27..18 | 17..12 | 11..8 | 7..0 | + // +----------+--------+--------+--------+---------+----------+ + // field | floating | zero | used-4 | size | pagemap | free pos | + // + slab** iParent; // reference to iParent's pointer to this slab in tree + slab* iChild1; // 1st iChild in tree + slab* iChild2; // 2nd iChild in tree +}; + +const TInt KMaxSlabPayload = SLABSIZE - sizeof(slabhdr); +#define MAXUSEDM4BITS 0x0fc00000 +#define FLOATING_BIT 0x80000000 + +inline unsigned HeaderFloating(unsigned h) +{return (h&0x80000000);} +const unsigned maxuse = (SLABSIZE - sizeof(slabhdr))>>2; +const unsigned firstpos = sizeof(slabhdr)>>2; + +#ifdef _DEBUG +#define CHECKTREE(x) DoCheckSlabTree(x,EFalse) +#define CHECKSLAB(s,t,p) DoCheckSlab(s,t,p) +#define CHECKSLABBFR(s,p) {TUint32 b[4]; BuildPartialSlabBitmap(b,s,p);} +#else +#define CHECKTREE(x) (void)0 +#define CHECKSLAB(s,t,p) (void)0 +#define CHECKSLABBFR(s,p) (void)0 +#endif + +class slabset +{ + public: + slab* iPartial; +}; + +class slab : public slabhdr +{ + public: + void Init(unsigned clz); + //static slab* SlabFor( void* p); + static slab* SlabFor(const void* p) ; + unsigned char iPayload[SLABSIZE-sizeof(slabhdr)]; +}; + +class page +{ + public: + inline static page* PageFor(slab* s); + //slab iSlabs; + slab iSlabs[slabsperpage]; +}; + + +inline page* page::PageFor(slab* s) +{ + return reinterpret_cast((unsigned(s))&~(PAGESIZE-1)); +} + + +#endif // __KERNEL_MODE__ diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 9c90fbf..45ca28e 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2451,9 +2451,11 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); #endif #endif +#ifndef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS //Enable the (backported) new allocator. When it is available in OS, //this flag should be disabled for that OS version onward #define QT_USE_NEW_SYMBIAN_ALLOCATOR +#endif //Symbian does not support data imports from a DLL #define Q_NO_DATA_RELOCATION diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 01679be..f496839 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3711,4 +3711,5 @@ EXPORTS _ZlsR11QDataStreamRK12QEasingCurve @ 3710 NONAME _ZltRK13QElapsedTimerS1_ @ 3711 NONAME _ZrsR11QDataStreamR12QEasingCurve @ 3712 NONAME + _Z26qt_symbian_SetupThreadHeapiR24SStdEpocThreadCreateInfo @ 3713 NONAME diff --git a/src/s60main/newallocator_hook.cpp b/src/s60main/newallocator_hook.cpp index 839f79a..9825920 100644 --- a/src/s60main/newallocator_hook.cpp +++ b/src/s60main/newallocator_hook.cpp @@ -40,16 +40,17 @@ ****************************************************************************/ #include #include +#include Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); -/* - * \internal + +/* \internal * * Uses link-time symbol preemption to capture a call from the application * startup. On return, there is some kind of heap allocator installed on the * thread. - */ +*/ TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) { return qt_symbian_SetupThreadHeap(aNotFirst, aInfo); -- cgit v0.12 From e3d99d5147e42a5ab1760291061275febdf329c7 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 23 Sep 2010 09:25:13 +0100 Subject: new allocator tidy up and winscw freeze renamed headers diabaled new allocator for winscw builds, and froze the heap creation export Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/debugfunction.cpp | 10 +-- src/corelib/arch/symbian/heap_hybrid.cpp | 2 +- src/corelib/arch/symbian/heap_hybrid_p.h | 5 +- src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 4 +- src/corelib/arch/symbian/qt_hybridHeap_symbian.h | 76 ----------------------- src/corelib/global/qglobal.h | 2 +- src/s60installs/bwins/QtCoreu.def | 1 + 7 files changed, 13 insertions(+), 87 deletions(-) delete mode 100644 src/corelib/arch/symbian/qt_hybridHeap_symbian.h diff --git a/src/corelib/arch/symbian/debugfunction.cpp b/src/corelib/arch/symbian/debugfunction.cpp index 62adde0..12ffcd3 100644 --- a/src/corelib/arch/symbian/debugfunction.cpp +++ b/src/corelib/arch/symbian/debugfunction.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qt_hybridheap_symbian.h" +#include "qt_hybridheap_symbian_p.h" #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR @@ -79,11 +79,11 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) __DEBUG_ONLY(DoSetAllocFail((TAllocFail)(TInt)a1, (TInt)a2)); break; -#ifdef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED +#ifndef SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::EGetFail: __DEBUG_ONLY(r = iFailType); break; -#endif // SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED +#endif // SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::ESetBurstFail: #if _DEBUG @@ -107,7 +107,7 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) break; } -#ifdef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED +#ifndef SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::EGetSize: { r = iChunkSize - sizeof(RHybridHeap); @@ -193,7 +193,7 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) break; } #endif // __KERNEL_MODE -#endif // SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED +#endif // SYMBIAN4_ALLOCATOR_UNWANTED_CODE default: return KErrNotSupported; diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index 4b514b2..2471f79 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qt_hybridheap_symbian.h" +#include "qt_hybridheap_symbian_p.h" #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR diff --git a/src/corelib/arch/symbian/heap_hybrid_p.h b/src/corelib/arch/symbian/heap_hybrid_p.h index bb6fd31..b765417 100644 --- a/src/corelib/arch/symbian/heap_hybrid_p.h +++ b/src/corelib/arch/symbian/heap_hybrid_p.h @@ -94,9 +94,8 @@ class RHybridHeap : public RHeap { public: -// MGR CHANGE -typedef void (*TWalkFunc)(TAny*, RHeap::TCellType, TAny*, TInt); - + // declaration copied from RHeap to make it visible + typedef void (*TWalkFunc)(TAny*, RHeap::TCellType, TAny*, TInt); struct HeapInfo { diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp index 3d92ccd..a619252 100644 --- a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qt_hybridheap_symbian.h" +#include "qt_hybridheap_symbian_p.h" #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR @@ -86,6 +86,8 @@ void Panic(TCdtPanic reason) #else /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ +#include + /* * \internal * Called from the qtmain.lib application wrapper. diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian.h deleted file mode 100644 index 872c4ec..0000000 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian.h +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QT_HYBRIDHEAP_SYMBIAN_H -#define QT_HYBRIDHEAP_SYMBIAN_H - -#include - -#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR - -#include "common_p.h" -#ifdef __KERNEL_MODE__ -#include -#endif -#include "dla_p.h" -#ifndef __KERNEL_MODE__ -#include "slab_p.h" -#include "page_alloc_p.h" -#endif -#include "heap_hybrid_p.h" - -// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols -#undef UIMPORT_C -#define UIMPORT_C -#undef IMPORT_C -#define IMPORT_C -#undef UEXPORT_C -#define UEXPORT_C -#undef EXPORT_C -#define EXPORT_C -#undef IMPORT_D -#define IMPORT_D - -#undef SYMBIAN4_DEBUG_FUNCTIONS_SUPPORTED - -#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ - -#endif /* QT_HYBRIDHEAP_SYMBIAN_H */ diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 45ca28e..3c177ae 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2451,7 +2451,7 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); #endif #endif -#ifndef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS +#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) //Enable the (backported) new allocator. When it is available in OS, //this flag should be disabled for that OS version onward #define QT_USE_NEW_SYMBIAN_ALLOCATOR diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index 0f66d72..5eeb244 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4482,4 +4482,5 @@ EXPORTS ?textDirection@QLocale@@QBE?AW4LayoutDirection@Qt@@XZ @ 4481 NONAME ; enum Qt::LayoutDirection QLocale::textDirection(void) const ?msecsSinceReference@QElapsedTimer@@QBE_JXZ @ 4482 NONAME ; long long QElapsedTimer::msecsSinceReference(void) const ?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4483 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void) + ?qt_symbian_SetupThreadHeap@@YAHHAAUSStdEpocThreadCreateInfo@@@Z @ 4484 NONAME ; int qt_symbian_SetupThreadHeap(int, struct SStdEpocThreadCreateInfo &) -- cgit v0.12 From 05757a925a3b8c2ac5815c2dbdf80307fc12e6e7 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 23 Sep 2010 09:45:50 +0100 Subject: added renamed header qt_hybridHeap_symbian_p.h was renamed from qt_hybridHeap_symbian.h to make it clear that it's private/internal. But it hadn't been added to git. Now it is. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h new file mode 100644 index 0000000..cfb5d78 --- /dev/null +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_HYBRIDHEAP_SYMBIAN_H +#define QT_HYBRIDHEAP_SYMBIAN_H + +#include + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +#include "common_p.h" +#ifdef __KERNEL_MODE__ +#include +#endif +#include "dla_p.h" +#ifndef __KERNEL_MODE__ +#include "slab_p.h" +#include "page_alloc_p.h" +#endif +#include "heap_hybrid_p.h" + +// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols in arm builds +#undef UIMPORT_C +#define UIMPORT_C +#undef IMPORT_C +#define IMPORT_C +#undef UEXPORT_C +#define UEXPORT_C +#undef EXPORT_C +#define EXPORT_C +#undef IMPORT_D +#define IMPORT_D + +// disabling code ported from Symbian^4 that we don't want/can't have in earlier platforms +#define SYMBIAN4_ALLOCATOR_UNWANTED_CODE + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ + +#endif /* QT_HYBRIDHEAP_SYMBIAN_H */ -- cgit v0.12 From b98ecf5228d7f716c1a7c26071ae47496560c61c Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 23 Sep 2010 10:06:19 +0100 Subject: added header to arch.pri qt_hybridHeap_symbian_p.h was missing from arch.pri, added. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/arch.pri | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index 8c546c0..a10fefe 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -11,6 +11,7 @@ HEADERS += $$QT_ARCH_CPP/dla_p.h \ $$QT_ARCH_CPP/heap_hybrid_p.h \ $$QT_ARCH_CPP/common_p.h \ $$QT_ARCH_CPP/page_alloc_p.h \ - $$QT_ARCH_CPP/slab_p.h + $$QT_ARCH_CPP/slab_p.h \ + $$QT_ARCH_CPP/qt_hybridHeap_symbian_p.h exists($$EPOCROOT/epoc32/include/u32std.h):DEFINES += QT_SYMBIAN_HAVE_U32STD_H -- cgit v0.12 From fb072fde30ec17d3a25b1535de82252579b81113 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 23 Sep 2010 17:00:49 +0100 Subject: removing header use not in public SDKs u32exec.h was not available in the symbian^3 SDK, so it has been removed and other necessary headers are added. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/common_p.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/corelib/arch/symbian/common_p.h b/src/corelib/arch/symbian/common_p.h index d7682ae..4b1c64e 100644 --- a/src/corelib/arch/symbian/common_p.h +++ b/src/corelib/arch/symbian/common_p.h @@ -54,7 +54,11 @@ #include #include #include -#include +// backport of Symbian^4 allocator to Symbian^3 SDK does not contain u32exec.h +//#include +// but the following are needed +#include +#include #endif GLREF_C void Panic(TCdtPanic aPanic); -- cgit v0.12 From 91b7fef1dff86eac3e210a322208405b44f5c580 Mon Sep 17 00:00:00 2001 From: mread Date: Fri, 24 Sep 2010 13:18:21 +0100 Subject: getting fast allocator to compile on S60 5.0 SDK This change adds flagging and definitions necessary to get the fast allocator compiling on 5.0 Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/arch.pri | 3 +- src/corelib/arch/symbian/common_p.h | 3 - src/corelib/arch/symbian/debugfunction.cpp | 13 ++-- src/corelib/arch/symbian/heap_hybrid.cpp | 17 ++++- src/corelib/arch/symbian/heap_hybrid_p.h | 9 ++- src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 79 +++++++++++++++++++++- 6 files changed, 110 insertions(+), 14 deletions(-) diff --git a/src/corelib/arch/symbian/arch.pri b/src/corelib/arch/symbian/arch.pri index a10fefe..70daee3 100644 --- a/src/corelib/arch/symbian/arch.pri +++ b/src/corelib/arch/symbian/arch.pri @@ -14,4 +14,5 @@ HEADERS += $$QT_ARCH_CPP/dla_p.h \ $$QT_ARCH_CPP/slab_p.h \ $$QT_ARCH_CPP/qt_hybridHeap_symbian_p.h -exists($$EPOCROOT/epoc32/include/u32std.h):DEFINES += QT_SYMBIAN_HAVE_U32STD_H +exists($${EPOCROOT}epoc32/include/platform/u32std.h):DEFINES += QT_SYMBIAN_HAVE_U32STD_H +exists($${EPOCROOT}epoc32/include/platform/e32btrace.h):DEFINES += QT_SYMBIAN_HAVE_E32BTRACE_H diff --git a/src/corelib/arch/symbian/common_p.h b/src/corelib/arch/symbian/common_p.h index 4b1c64e..1076621 100644 --- a/src/corelib/arch/symbian/common_p.h +++ b/src/corelib/arch/symbian/common_p.h @@ -56,9 +56,6 @@ #include // backport of Symbian^4 allocator to Symbian^3 SDK does not contain u32exec.h //#include -// but the following are needed -#include -#include #endif GLREF_C void Panic(TCdtPanic aPanic); diff --git a/src/corelib/arch/symbian/debugfunction.cpp b/src/corelib/arch/symbian/debugfunction.cpp index 12ffcd3..ecffc64 100644 --- a/src/corelib/arch/symbian/debugfunction.cpp +++ b/src/corelib/arch/symbian/debugfunction.cpp @@ -42,11 +42,18 @@ #include "qt_hybridheap_symbian_p.h" #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR +#define RAllocator RHybridHeap #define GM (&iGlobalMallocState) +#ifdef ENABLE_BTRACE #define __HEAP_CORRUPTED_TRACE(t,p,l) BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)t, (TUint32)p, (TUint32)l); #define __HEAP_CORRUPTED_TEST(c,x, p,l) if (!c) { if (iFlags & (EMonitorMemory+ETraceAllocs) ) __HEAP_CORRUPTED_TRACE(this,p,l) HEAP_PANIC(x); } #define __HEAP_CORRUPTED_TEST_STATIC(c,t,x,p,l) if (!c) { if (t && (t->iFlags & (EMonitorMemory+ETraceAllocs) )) __HEAP_CORRUPTED_TRACE(t,p,l) HEAP_PANIC(x); } +#else +#define __HEAP_CORRUPTED_TRACE(t,p,l) +#define __HEAP_CORRUPTED_TEST(c,x, p,l) +#define __HEAP_CORRUPTED_TEST_STATIC(c,t,x,p,l) +#endif TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) { @@ -79,11 +86,9 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) __DEBUG_ONLY(DoSetAllocFail((TAllocFail)(TInt)a1, (TInt)a2)); break; -#ifndef SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::EGetFail: __DEBUG_ONLY(r = iFailType); break; -#endif // SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::ESetBurstFail: #if _DEBUG @@ -107,7 +112,6 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) break; } -#ifndef SYMBIAN4_ALLOCATOR_UNWANTED_CODE case RAllocator::EGetSize: { r = iChunkSize - sizeof(RHybridHeap); @@ -193,8 +197,7 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) break; } #endif // __KERNEL_MODE -#endif // SYMBIAN4_ALLOCATOR_UNWANTED_CODE - + default: return KErrNotSupported; diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index 2471f79..1be3cf5 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -43,9 +43,6 @@ #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR -// enables btrace code compiling into -#define ENABLE_BTRACE - // if non zero this causes the iSlabs to be configured only when the chunk size exceeds this level #define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data #define SLAB_CONFIG 0xabe // Use slabs of size 48, 40, 32, 24, 20, 16, 12, and 8 bytes @@ -95,6 +92,7 @@ #define __INIT_COUNTERS(i) iCellCount=i,iTotalAllocSize=i #define __POWER_OF_2(x) (!((x)&((x)-1))) +#ifdef ENABLE_BTRACE #define __DL_BFR_CHECK(M,P) \ if ( MEMORY_MONITORED ) \ if ( !IS_ALIGNED(P) || ((TUint8*)(P)iSeg.iBase) || ((TUint8*)(P)>(M->iSeg.iBase+M->iSeg.iSize))) \ @@ -114,6 +112,11 @@ BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)this, (TUint32)P, (TUint32)0), HEAP_PANIC(ETHeapBadCellAddress) #endif +#else +#define __DL_BFR_CHECK(M,P) +#define __SLAB_BFR_CHECK(S,P,B) +#define __PAGE_BFR_CHECK(P) +#endif #ifdef _MSC_VER // This is required while we are still using VC6 to compile, so as to avoid warnings that cannot be fixed @@ -2832,6 +2835,7 @@ inline void* RHybridHeap::Bitmap2addr(unsigned pos) const { return iMemBase + (1 << (PAGESHIFT-1))*pos; } +#ifndef QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// @@ -3070,6 +3074,7 @@ Note that the size of the heap cannot be adjusted by more than aMaxLength. return ChunkHeap(createInfo); } +#endif // QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE EXPORT_C RHeap* UserHeap::ChunkHeap(RChunk aChunk, TInt aMinLength, TInt aGrowBy, TInt aMaxLength, TInt aAlign, TBool aSingleThread, TUint32 aMode) /** @@ -3279,8 +3284,10 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* GET_PAGE_SIZE(page_size); TInt minLength = _ALIGN_UP(aInfo.iHeapInitialSize, page_size); TInt maxLength = Max(aInfo.iHeapMaxSize, minLength); +#ifndef QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE if (UserTestDebugMaskBit(96)) // 96 == KUSERHEAPTRACE in nk_trace.h aInfo.iFlags |= ETraceHeapAllocs; +#endif // QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE // Create the thread's heap chunk. RChunk c; TChunkCreateInfo createInfo; @@ -3293,6 +3300,7 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* maxLength = 2*maxLength; createInfo.SetDisconnected(0, 0, maxLength); #endif +#ifndef QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE // Set the paging policy of the heap chunk based on the thread's paging policy. TUint pagingflags = aInfo.iFlags & EThreadCreateFlagPagingMask; switch (pagingflags) @@ -3308,6 +3316,7 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* // paging policy is used. break; } +#endif // QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE TInt r = c.Create(createInfo); if (r!=KErrNone) @@ -3319,6 +3328,7 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* if ( !aHeap ) return KErrNoMemory; +#ifdef ENABLE_BTRACE if (aInfo.iFlags & ETraceHeapAllocs) { aHeap->iFlags |= RHeap::ETraceAllocs; @@ -3328,6 +3338,7 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* } if (aInfo.iFlags & EMonitorHeapMemory) aHeap->iFlags |= RHeap::EMonitorMemory; +#endif // ENABLE_BTRACE return KErrNone; } diff --git a/src/corelib/arch/symbian/heap_hybrid_p.h b/src/corelib/arch/symbian/heap_hybrid_p.h index b765417..467bd69 100644 --- a/src/corelib/arch/symbian/heap_hybrid_p.h +++ b/src/corelib/arch/symbian/heap_hybrid_p.h @@ -94,8 +94,15 @@ class RHybridHeap : public RHeap { public: - // declaration copied from RHeap to make it visible + // declarations copied from Symbian^4 RAllocator and RHeap typedef void (*TWalkFunc)(TAny*, RHeap::TCellType, TAny*, TInt); + enum TFlags {ESingleThreaded=1, EFixedSize=2, ETraceAllocs=4, EMonitorMemory=8,}; + enum TAllocDebugOp + { + ECount, EMarkStart, EMarkEnd, ECheck, ESetFail, ECopyDebugInfo, ESetBurstFail, EGetFail, + EGetSize=48, EGetMaxLength, EGetBase, EAlignInteger, EAlignAddr + }; + enum TDebugOp { EWalk = 128, EHybridHeap }; struct HeapInfo { diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h index cfb5d78..0269adb 100644 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -47,6 +47,14 @@ #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR #include "common_p.h" +#ifdef QT_SYMBIAN_HAVE_U32STD_H +#include +#endif +#ifdef QT_SYMBIAN_HAVE_E32BTRACE_H +#include +// enables btrace code compiling into +#define ENABLE_BTRACE +#endif #ifdef __KERNEL_MODE__ #include #endif @@ -70,7 +78,76 @@ #define IMPORT_D // disabling code ported from Symbian^4 that we don't want/can't have in earlier platforms -#define SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#define QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE + +#ifndef QT_SYMBIAN_HAVE_U32STD_H +struct SThreadCreateInfo + { + TAny* iHandle; + TInt iType; + TThreadFunction iFunction; + TAny* iPtr; + TAny* iSupervisorStack; + TInt iSupervisorStackSize; + TAny* iUserStack; + TInt iUserStackSize; + TInt iInitialThreadPriority; + TPtrC iName; + TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) + }; + +struct SStdEpocThreadCreateInfo : public SThreadCreateInfo + { + RAllocator* iAllocator; + TInt iHeapInitialSize; + TInt iHeapMaxSize; + TInt iPadding; // Make structure size a multiple of 8 bytes + }; + +class TChunkCreate + { +public: + // Attributes for chunk creation that are used by both euser and the kernel + // by classes TChunkCreateInfo and SChunkCreateInfo, respectively. + enum TChunkCreateAtt + { + ENormal = 0x00000000, + EDoubleEnded = 0x00000001, + EDisconnected = 0x00000002, + ECache = 0x00000003, + EMappingMask = 0x0000000f, + ELocal = 0x00000000, + EGlobal = 0x00000010, + EData = 0x00000000, + ECode = 0x00000020, + EMemoryNotOwned = 0x00000040, + + // Force local chunk to be named. Only required for thread heap + // chunks, all other local chunks should be nameless. + ELocalNamed = 0x000000080, + + // Make global chunk read only to all processes but the controlling owner + EReadOnly = 0x000000100, + + // Paging attributes for chunks. + EPagingUnspec = 0x00000000, + EPaged = 0x80000000, + EUnpaged = 0x40000000, + EPagingMask = EPaged | EUnpaged, + + EChunkCreateAttMask = EMappingMask | EGlobal | ECode | + ELocalNamed | EReadOnly | EPagingMask, + }; +public: + TUint iAtt; + TBool iForceFixed; + TInt iInitialBottom; + TInt iInitialTop; + TInt iMaxSize; + TUint8 iClearByte; + }; + +#endif // QT_SYMBIAN_HAVE_U32STD_H #endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ -- cgit v0.12 From b0df6df2fbbb9bd29fe2cfaed731878171061cbf Mon Sep 17 00:00:00 2001 From: mread Date: Fri, 24 Sep 2010 13:28:14 +0100 Subject: moved fast allocator config to qt_hybridHeap_symbian_p.h The fast allocator switch was in qglobal.h, which is unnessarily global. Instead it has been moved to qt_hybridHeap_symbian_p.h, where is has the minimum visibility required. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 6 ++++++ src/corelib/global/qglobal.h | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h index 0269adb..e0437f9 100644 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -44,6 +44,12 @@ #include +#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) +//Enable the (backported) new allocator. When it is available in OS, +//this flag should be disabled for that OS version onward +#define QT_USE_NEW_SYMBIAN_ALLOCATOR +#endif + #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR #include "common_p.h" diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 3c177ae..35607d5 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2451,12 +2451,6 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); #endif #endif -#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) -//Enable the (backported) new allocator. When it is available in OS, -//this flag should be disabled for that OS version onward -#define QT_USE_NEW_SYMBIAN_ALLOCATOR -#endif - //Symbian does not support data imports from a DLL #define Q_NO_DATA_RELOCATION -- cgit v0.12 From 7bcab85e924a1a904a4231492f5cbab8885d965e Mon Sep 17 00:00:00 2001 From: mread Date: Fri, 24 Sep 2010 15:36:20 +0100 Subject: fast allocator compiling for S60 3.2 The fast allocator on S60 3.2 can't use TChunkCreateInfo. Instead, RChunk::CreateDisconnectedLocal() has to be used Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/heap_hybrid.cpp | 12 ++++++++---- src/corelib/arch/symbian/heap_hybrid_p.h | 5 +++++ src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 2 ++ src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 4 ++++ 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index 1be3cf5..4d101ed 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -3284,12 +3284,13 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* GET_PAGE_SIZE(page_size); TInt minLength = _ALIGN_UP(aInfo.iHeapInitialSize, page_size); TInt maxLength = Max(aInfo.iHeapMaxSize, minLength); -#ifndef QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#ifdef ENABLE_BTRACE if (UserTestDebugMaskBit(96)) // 96 == KUSERHEAPTRACE in nk_trace.h aInfo.iFlags |= ETraceHeapAllocs; -#endif // QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#endif // ENABLE_BTRACE // Create the thread's heap chunk. RChunk c; +#ifndef NO_NAMED_LOCAL_CHUNKS TChunkCreateInfo createInfo; createInfo.SetThreadHeap(0, maxLength, KLitDollarHeap()); // Initialise with no memory committed. @@ -3300,7 +3301,7 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* maxLength = 2*maxLength; createInfo.SetDisconnected(0, 0, maxLength); #endif -#ifndef QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#ifdef SYMBIAN_WRITABLE_DATA_PAGING // Set the paging policy of the heap chunk based on the thread's paging policy. TUint pagingflags = aInfo.iFlags & EThreadCreateFlagPagingMask; switch (pagingflags) @@ -3316,9 +3317,12 @@ EXPORT_C TInt UserHeap::CreateThreadHeap(SStdEpocThreadCreateInfo& aInfo, RHeap* // paging policy is used. break; } -#endif // QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#endif // SYMBIAN_WRITABLE_DATA_PAGING TInt r = c.Create(createInfo); +#else + TInt r = c.CreateDisconnectedLocal(0, 0, maxLength * 2); +#endif if (r!=KErrNone) return r; diff --git a/src/corelib/arch/symbian/heap_hybrid_p.h b/src/corelib/arch/symbian/heap_hybrid_p.h index 467bd69..6583657 100644 --- a/src/corelib/arch/symbian/heap_hybrid_p.h +++ b/src/corelib/arch/symbian/heap_hybrid_p.h @@ -103,6 +103,11 @@ public: EGetSize=48, EGetMaxLength, EGetBase, EAlignInteger, EAlignAddr }; enum TDebugOp { EWalk = 128, EHybridHeap }; + enum TAllocFail + { + /*ERandom, ETrueRandom, EDeterministic, ENone, EFailNext, EReset, EBurstRandom, + EBurstTrueRandom, EBurstDeterministic, EBurstFailNext,*/ ECheckFailure = 10, + }; struct HeapInfo { diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp index a619252..4e2095d 100644 --- a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -67,6 +67,7 @@ Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCre return r; } +#ifndef NO_NAMED_LOCAL_CHUNKS void TChunkCreateInfo::SetThreadHeap(TInt aInitialSize, TInt aMaxSize, const TDesC& aName) { iType = TChunkCreate::ENormal | TChunkCreate::EData; @@ -77,6 +78,7 @@ void TChunkCreateInfo::SetThreadHeap(TInt aInitialSize, TInt aMaxSize, const TDe iName = &aName; iOwnerType = EOwnerThread; } +#endif // NO_NAMED_LOCAL_CHUNKS void Panic(TCdtPanic reason) { diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h index e0437f9..eb43bf8 100644 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -86,6 +86,10 @@ // disabling code ported from Symbian^4 that we don't want/can't have in earlier platforms #define QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE +#if defined(SYMBIAN_VERSION_9_2) || defined(SYMBIAN_VERSION_9_1) +#define NO_NAMED_LOCAL_CHUNKS +#endif + #ifndef QT_SYMBIAN_HAVE_U32STD_H struct SThreadCreateInfo { -- cgit v0.12 From 6bd02df13f6fc1dddc2c65a5d9b56fd9619c435e Mon Sep 17 00:00:00 2001 From: mread Date: Fri, 24 Sep 2010 15:46:38 +0100 Subject: declaring fast allocation shrink hysteresis value The allocator code copied from 10.1 would have no default value set for KHeapShrinkHysRatio, since it's no longer a patchable constant. This change gives it a value of 0x800, to be tuned for performance. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp index 4e2095d..d6b7351 100644 --- a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -43,6 +43,8 @@ #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR +extern const TInt KHeapShrinkHysRatio = 0x800; + /* * \internal * Called from the qtmain.lib application wrapper. -- cgit v0.12 From 2a8c5d045a88633fab8d86e56ad0f2fa7c8608c1 Mon Sep 17 00:00:00 2001 From: mread Date: Mon, 27 Sep 2010 11:17:53 +0100 Subject: removing need for u32std.h in s60main newallocator_hook.cpp had #include for the definition of SStdEpocThreadCreateInfo. This header is not available in earlier S60 platforms. But we do not need the full definition of SStdEpocThreadCreateInfo, so a forward declaration is used instead. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/s60main/newallocator_hook.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/s60main/newallocator_hook.cpp b/src/s60main/newallocator_hook.cpp index 9825920..9cc6afb 100644 --- a/src/s60main/newallocator_hook.cpp +++ b/src/s60main/newallocator_hook.cpp @@ -40,7 +40,8 @@ ****************************************************************************/ #include #include -#include + +struct SStdEpocThreadCreateInfo; Q_CORE_EXPORT TInt qt_symbian_SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo); -- cgit v0.12 From 47a5f678f5eefffd456d3454364d806ba29e8920 Mon Sep 17 00:00:00 2001 From: mread Date: Mon, 27 Sep 2010 16:53:49 +0100 Subject: hybrid allocator tuning Set various pragmas and defines to tune the hybrid allocator. Performance test was the time takes to allocate or deallocate as appropriate 1,000,000 times from a set of 100,000 pointers, selected at random, with sizes generated randomly with min 2, max 5960, avg 46. The function was exp(8 - log(2 + rand(0..1023))) * rand(1 or 4). The following parameters were chosen: * pragma arm, for ~1.2% * pragma Otime, for ~3% * pragma O2, already the compiler default, just to be sure * all possible slab sizes enabled, for ~1% NB Disabling BTrace would also gain ~1.5%, but that seems like a bad thing to do. Not done. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/heap_hybrid.cpp | 3 ++- src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index 4d101ed..f650b5b 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -45,7 +45,8 @@ // if non zero this causes the iSlabs to be configured only when the chunk size exceeds this level #define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data -#define SLAB_CONFIG 0xabe // Use slabs of size 48, 40, 32, 24, 20, 16, 12, and 8 bytes +//#define SLAB_CONFIG 0xabe // Use slabs of size 48, 40, 32, 24, 20, 16, 12, and 8 bytes +#define SLAB_CONFIG 0x3fff // Use all slab sizes 4,8..56 bytes #ifdef _DEBUG #define __SIMULATE_ALLOC_FAIL(s) if (CheckForSimulatedAllocFail()) {s} diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h index eb43bf8..55c8fb2 100644 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -52,6 +52,13 @@ #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR +#ifndef __WINS__ +#pragma push +#pragma arm +#pragma Otime +#pragma O2 +#endif + #include "common_p.h" #ifdef QT_SYMBIAN_HAVE_U32STD_H #include -- cgit v0.12 From e742dc8d9d7274aa0a80c4a79042ebfc8ff539bc Mon Sep 17 00:00:00 2001 From: mread Date: Wed, 29 Sep 2010 15:56:14 +0100 Subject: hybrid allocator integration review updates Disabling BTrace use in the heap checking macros without disabling any of the rest of the heap checking functionality. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/debugfunction.cpp | 6 ------ src/corelib/arch/symbian/heap_hybrid.cpp | 6 ------ src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 8 ++++++++ src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 6 ++++++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/corelib/arch/symbian/debugfunction.cpp b/src/corelib/arch/symbian/debugfunction.cpp index ecffc64..f4daf03 100644 --- a/src/corelib/arch/symbian/debugfunction.cpp +++ b/src/corelib/arch/symbian/debugfunction.cpp @@ -45,15 +45,9 @@ #define RAllocator RHybridHeap #define GM (&iGlobalMallocState) -#ifdef ENABLE_BTRACE #define __HEAP_CORRUPTED_TRACE(t,p,l) BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)t, (TUint32)p, (TUint32)l); #define __HEAP_CORRUPTED_TEST(c,x, p,l) if (!c) { if (iFlags & (EMonitorMemory+ETraceAllocs) ) __HEAP_CORRUPTED_TRACE(this,p,l) HEAP_PANIC(x); } #define __HEAP_CORRUPTED_TEST_STATIC(c,t,x,p,l) if (!c) { if (t && (t->iFlags & (EMonitorMemory+ETraceAllocs) )) __HEAP_CORRUPTED_TRACE(t,p,l) HEAP_PANIC(x); } -#else -#define __HEAP_CORRUPTED_TRACE(t,p,l) -#define __HEAP_CORRUPTED_TEST(c,x, p,l) -#define __HEAP_CORRUPTED_TEST_STATIC(c,t,x,p,l) -#endif TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) { diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index f650b5b..b5fcdbd 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -93,7 +93,6 @@ #define __INIT_COUNTERS(i) iCellCount=i,iTotalAllocSize=i #define __POWER_OF_2(x) (!((x)&((x)-1))) -#ifdef ENABLE_BTRACE #define __DL_BFR_CHECK(M,P) \ if ( MEMORY_MONITORED ) \ if ( !IS_ALIGNED(P) || ((TUint8*)(P)iSeg.iBase) || ((TUint8*)(P)>(M->iSeg.iBase+M->iSeg.iSize))) \ @@ -113,11 +112,6 @@ BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)this, (TUint32)P, (TUint32)0), HEAP_PANIC(ETHeapBadCellAddress) #endif -#else -#define __DL_BFR_CHECK(M,P) -#define __SLAB_BFR_CHECK(S,P,B) -#define __PAGE_BFR_CHECK(P) -#endif #ifdef _MSC_VER // This is required while we are still using VC6 to compile, so as to avoid warnings that cannot be fixed diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp index d6b7351..b8193f1 100644 --- a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -88,6 +88,14 @@ void Panic(TCdtPanic reason) User::Panic(KCat, reason); } +// disabling the BTrace components of heap checking macros +#ifndef ENABLE_BTRACE +int noBTrace() +{ + return 0; +} +#endif + #else /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ #include diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h index 55c8fb2..7b569fd 100644 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h @@ -97,6 +97,12 @@ #define NO_NAMED_LOCAL_CHUNKS #endif +// disabling the BTrace components of heap checking macros +#ifndef ENABLE_BTRACE +extern int noBTrace(); +#define BTraceContext12(a,b,c,d,e) noBTrace() +#endif + #ifndef QT_SYMBIAN_HAVE_U32STD_H struct SThreadCreateInfo { -- cgit v0.12 From de94fd33b686b92f7f7156abb86425ac545a7d15 Mon Sep 17 00:00:00 2001 From: mread Date: Wed, 29 Sep 2010 16:00:50 +0100 Subject: lower case name for allocator support header Using lower case name, as recommended by review comment Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h | 177 --------------------- src/corelib/arch/symbian/qt_hybridheap_symbian_p.h | 177 +++++++++++++++++++++ 2 files changed, 177 insertions(+), 177 deletions(-) delete mode 100644 src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h create mode 100644 src/corelib/arch/symbian/qt_hybridheap_symbian_p.h diff --git a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h deleted file mode 100644 index 7b569fd..0000000 --- a/src/corelib/arch/symbian/qt_hybridHeap_symbian_p.h +++ /dev/null @@ -1,177 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QT_HYBRIDHEAP_SYMBIAN_H -#define QT_HYBRIDHEAP_SYMBIAN_H - -#include - -#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) -//Enable the (backported) new allocator. When it is available in OS, -//this flag should be disabled for that OS version onward -#define QT_USE_NEW_SYMBIAN_ALLOCATOR -#endif - -#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR - -#ifndef __WINS__ -#pragma push -#pragma arm -#pragma Otime -#pragma O2 -#endif - -#include "common_p.h" -#ifdef QT_SYMBIAN_HAVE_U32STD_H -#include -#endif -#ifdef QT_SYMBIAN_HAVE_E32BTRACE_H -#include -// enables btrace code compiling into -#define ENABLE_BTRACE -#endif -#ifdef __KERNEL_MODE__ -#include -#endif -#include "dla_p.h" -#ifndef __KERNEL_MODE__ -#include "slab_p.h" -#include "page_alloc_p.h" -#endif -#include "heap_hybrid_p.h" - -// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols in arm builds -#undef UIMPORT_C -#define UIMPORT_C -#undef IMPORT_C -#define IMPORT_C -#undef UEXPORT_C -#define UEXPORT_C -#undef EXPORT_C -#define EXPORT_C -#undef IMPORT_D -#define IMPORT_D - -// disabling code ported from Symbian^4 that we don't want/can't have in earlier platforms -#define QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE - -#if defined(SYMBIAN_VERSION_9_2) || defined(SYMBIAN_VERSION_9_1) -#define NO_NAMED_LOCAL_CHUNKS -#endif - -// disabling the BTrace components of heap checking macros -#ifndef ENABLE_BTRACE -extern int noBTrace(); -#define BTraceContext12(a,b,c,d,e) noBTrace() -#endif - -#ifndef QT_SYMBIAN_HAVE_U32STD_H -struct SThreadCreateInfo - { - TAny* iHandle; - TInt iType; - TThreadFunction iFunction; - TAny* iPtr; - TAny* iSupervisorStack; - TInt iSupervisorStackSize; - TAny* iUserStack; - TInt iUserStackSize; - TInt iInitialThreadPriority; - TPtrC iName; - TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) - }; - -struct SStdEpocThreadCreateInfo : public SThreadCreateInfo - { - RAllocator* iAllocator; - TInt iHeapInitialSize; - TInt iHeapMaxSize; - TInt iPadding; // Make structure size a multiple of 8 bytes - }; - -class TChunkCreate - { -public: - // Attributes for chunk creation that are used by both euser and the kernel - // by classes TChunkCreateInfo and SChunkCreateInfo, respectively. - enum TChunkCreateAtt - { - ENormal = 0x00000000, - EDoubleEnded = 0x00000001, - EDisconnected = 0x00000002, - ECache = 0x00000003, - EMappingMask = 0x0000000f, - ELocal = 0x00000000, - EGlobal = 0x00000010, - EData = 0x00000000, - ECode = 0x00000020, - EMemoryNotOwned = 0x00000040, - - // Force local chunk to be named. Only required for thread heap - // chunks, all other local chunks should be nameless. - ELocalNamed = 0x000000080, - - // Make global chunk read only to all processes but the controlling owner - EReadOnly = 0x000000100, - - // Paging attributes for chunks. - EPagingUnspec = 0x00000000, - EPaged = 0x80000000, - EUnpaged = 0x40000000, - EPagingMask = EPaged | EUnpaged, - - EChunkCreateAttMask = EMappingMask | EGlobal | ECode | - ELocalNamed | EReadOnly | EPagingMask, - }; -public: - TUint iAtt; - TBool iForceFixed; - TInt iInitialBottom; - TInt iInitialTop; - TInt iMaxSize; - TUint8 iClearByte; - }; - -#endif // QT_SYMBIAN_HAVE_U32STD_H - -#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ - -#endif /* QT_HYBRIDHEAP_SYMBIAN_H */ diff --git a/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h new file mode 100644 index 0000000..7b569fd --- /dev/null +++ b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h @@ -0,0 +1,177 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT_HYBRIDHEAP_SYMBIAN_H +#define QT_HYBRIDHEAP_SYMBIAN_H + +#include + +#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) +//Enable the (backported) new allocator. When it is available in OS, +//this flag should be disabled for that OS version onward +#define QT_USE_NEW_SYMBIAN_ALLOCATOR +#endif + +#ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR + +#ifndef __WINS__ +#pragma push +#pragma arm +#pragma Otime +#pragma O2 +#endif + +#include "common_p.h" +#ifdef QT_SYMBIAN_HAVE_U32STD_H +#include +#endif +#ifdef QT_SYMBIAN_HAVE_E32BTRACE_H +#include +// enables btrace code compiling into +#define ENABLE_BTRACE +#endif +#ifdef __KERNEL_MODE__ +#include +#endif +#include "dla_p.h" +#ifndef __KERNEL_MODE__ +#include "slab_p.h" +#include "page_alloc_p.h" +#endif +#include "heap_hybrid_p.h" + +// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols in arm builds +#undef UIMPORT_C +#define UIMPORT_C +#undef IMPORT_C +#define IMPORT_C +#undef UEXPORT_C +#define UEXPORT_C +#undef EXPORT_C +#define EXPORT_C +#undef IMPORT_D +#define IMPORT_D + +// disabling code ported from Symbian^4 that we don't want/can't have in earlier platforms +#define QT_SYMBIAN4_ALLOCATOR_UNWANTED_CODE + +#if defined(SYMBIAN_VERSION_9_2) || defined(SYMBIAN_VERSION_9_1) +#define NO_NAMED_LOCAL_CHUNKS +#endif + +// disabling the BTrace components of heap checking macros +#ifndef ENABLE_BTRACE +extern int noBTrace(); +#define BTraceContext12(a,b,c,d,e) noBTrace() +#endif + +#ifndef QT_SYMBIAN_HAVE_U32STD_H +struct SThreadCreateInfo + { + TAny* iHandle; + TInt iType; + TThreadFunction iFunction; + TAny* iPtr; + TAny* iSupervisorStack; + TInt iSupervisorStackSize; + TAny* iUserStack; + TInt iUserStackSize; + TInt iInitialThreadPriority; + TPtrC iName; + TInt iTotalSize; // Size including any extras (must be a multiple of 8 bytes) + }; + +struct SStdEpocThreadCreateInfo : public SThreadCreateInfo + { + RAllocator* iAllocator; + TInt iHeapInitialSize; + TInt iHeapMaxSize; + TInt iPadding; // Make structure size a multiple of 8 bytes + }; + +class TChunkCreate + { +public: + // Attributes for chunk creation that are used by both euser and the kernel + // by classes TChunkCreateInfo and SChunkCreateInfo, respectively. + enum TChunkCreateAtt + { + ENormal = 0x00000000, + EDoubleEnded = 0x00000001, + EDisconnected = 0x00000002, + ECache = 0x00000003, + EMappingMask = 0x0000000f, + ELocal = 0x00000000, + EGlobal = 0x00000010, + EData = 0x00000000, + ECode = 0x00000020, + EMemoryNotOwned = 0x00000040, + + // Force local chunk to be named. Only required for thread heap + // chunks, all other local chunks should be nameless. + ELocalNamed = 0x000000080, + + // Make global chunk read only to all processes but the controlling owner + EReadOnly = 0x000000100, + + // Paging attributes for chunks. + EPagingUnspec = 0x00000000, + EPaged = 0x80000000, + EUnpaged = 0x40000000, + EPagingMask = EPaged | EUnpaged, + + EChunkCreateAttMask = EMappingMask | EGlobal | ECode | + ELocalNamed | EReadOnly | EPagingMask, + }; +public: + TUint iAtt; + TBool iForceFixed; + TInt iInitialBottom; + TInt iInitialTop; + TInt iMaxSize; + TUint8 iClearByte; + }; + +#endif // QT_SYMBIAN_HAVE_U32STD_H + +#endif /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ + +#endif /* QT_HYBRIDHEAP_SYMBIAN_H */ -- cgit v0.12 From b4aa359990c90553d91f7d2a5d4c4a4361e6d5d6 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 30 Sep 2010 13:19:04 +0100 Subject: hybrid heap further review changes changing the way enums are declared and used. commenting and restricting export macro changes. improved flagging Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/debugfunction.cpp | 17 ++++++++--------- src/corelib/arch/symbian/heap_hybrid_p.h | 4 ++-- src/corelib/arch/symbian/qt_hybridheap_symbian_p.h | 11 ++++------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/corelib/arch/symbian/debugfunction.cpp b/src/corelib/arch/symbian/debugfunction.cpp index f4daf03..f3b5d2d 100644 --- a/src/corelib/arch/symbian/debugfunction.cpp +++ b/src/corelib/arch/symbian/debugfunction.cpp @@ -42,7 +42,6 @@ #include "qt_hybridheap_symbian_p.h" #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR -#define RAllocator RHybridHeap #define GM (&iGlobalMallocState) #define __HEAP_CORRUPTED_TRACE(t,p,l) BTraceContext12(BTrace::EHeap, BTrace::EHeapCorruption, (TUint32)t, (TUint32)p, (TUint32)l); @@ -80,11 +79,11 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) __DEBUG_ONLY(DoSetAllocFail((TAllocFail)(TInt)a1, (TInt)a2)); break; - case RAllocator::EGetFail: + case RHybridHeap::EGetFail: __DEBUG_ONLY(r = iFailType); break; - case RAllocator::ESetBurstFail: + case RHybridHeap::ESetBurstFail: #if _DEBUG { SRAllocatorBurstFail* fail = (SRAllocatorBurstFail*) a2; @@ -93,7 +92,7 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) #endif break; - case RAllocator::ECheckFailure: + case RHybridHeap::ECheckFailure: // iRand will be incremented for each EFailNext, EBurstFailNext, // EDeterministic and EBurstDeterministic failure. r = iRand; @@ -106,31 +105,31 @@ TInt RHybridHeap::DebugFunction(TInt aFunc, TAny* a1, TAny* a2) break; } - case RAllocator::EGetSize: + case RHybridHeap::EGetSize: { r = iChunkSize - sizeof(RHybridHeap); break; } - case RAllocator::EGetMaxLength: + case RHybridHeap::EGetMaxLength: { r = iMaxLength; break; } - case RAllocator::EGetBase: + case RHybridHeap::EGetBase: { *(TAny**)a1 = iBase; break; } - case RAllocator::EAlignInteger: + case RHybridHeap::EAlignInteger: { r = _ALIGN_UP((TInt)a1, iAlign); break; } - case RAllocator::EAlignAddr: + case RHybridHeap::EAlignAddr: { *(TAny**)a2 = (TAny*)_ALIGN_UP((TLinAddr)a1, iAlign); break; diff --git a/src/corelib/arch/symbian/heap_hybrid_p.h b/src/corelib/arch/symbian/heap_hybrid_p.h index 6583657..736af72 100644 --- a/src/corelib/arch/symbian/heap_hybrid_p.h +++ b/src/corelib/arch/symbian/heap_hybrid_p.h @@ -105,8 +105,8 @@ public: enum TDebugOp { EWalk = 128, EHybridHeap }; enum TAllocFail { - /*ERandom, ETrueRandom, EDeterministic, ENone, EFailNext, EReset, EBurstRandom, - EBurstTrueRandom, EBurstDeterministic, EBurstFailNext,*/ ECheckFailure = 10, + ERandom, ETrueRandom, EDeterministic, EHybridNone, EFailNext, EReset, EBurstRandom, + EBurstTrueRandom, EBurstDeterministic, EBurstFailNext, ECheckFailure, }; struct HeapInfo diff --git a/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h index 7b569fd..a59f29e 100644 --- a/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h @@ -44,7 +44,7 @@ #include -#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINSCW__) +#if !defined(SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS) && !defined(__WINS__) //Enable the (backported) new allocator. When it is available in OS, //this flag should be disabled for that OS version onward #define QT_USE_NEW_SYMBIAN_ALLOCATOR @@ -52,7 +52,7 @@ #ifdef QT_USE_NEW_SYMBIAN_ALLOCATOR -#ifndef __WINS__ +#ifdef Q_CC_RVCT #pragma push #pragma arm #pragma Otime @@ -78,11 +78,8 @@ #endif #include "heap_hybrid_p.h" -// disabling Symbian import/export macros to prevent code copied from Symbian^4 from exporting symbols in arm builds -#undef UIMPORT_C -#define UIMPORT_C -#undef IMPORT_C -#define IMPORT_C +// disabling Symbian import/export macros to prevent heap_hybrid.cpp, copied from Symbian^4, from exporting symbols in arm builds +// this minimises the code changes to heap_hybrid.cpp to ease future integration #undef UEXPORT_C #define UEXPORT_C #undef EXPORT_C -- cgit v0.12 From 2945d5f494f839eb8a65e303d3a6b2d3ac51f4f6 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 30 Sep 2010 13:24:40 +0100 Subject: Further hybrid heap review changes this time, adding a comment to explain a performance improvement Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/heap_hybrid.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/corelib/arch/symbian/heap_hybrid.cpp b/src/corelib/arch/symbian/heap_hybrid.cpp index b5fcdbd..91faaed 100644 --- a/src/corelib/arch/symbian/heap_hybrid.cpp +++ b/src/corelib/arch/symbian/heap_hybrid.cpp @@ -45,8 +45,7 @@ // if non zero this causes the iSlabs to be configured only when the chunk size exceeds this level #define DELAYED_SLAB_THRESHOLD (64*1024) // 64KB seems about right based on trace data -//#define SLAB_CONFIG 0xabe // Use slabs of size 48, 40, 32, 24, 20, 16, 12, and 8 bytes -#define SLAB_CONFIG 0x3fff // Use all slab sizes 4,8..56 bytes +#define SLAB_CONFIG 0x3fff // Use all slab sizes 4,8..56 bytes. This is more efficient for large heaps as Qt tends to have #ifdef _DEBUG #define __SIMULATE_ALLOC_FAIL(s) if (CheckForSimulatedAllocFail()) {s} -- cgit v0.12 From d63f3d51fef1ff5a034ee9841663675cc8b28d25 Mon Sep 17 00:00:00 2001 From: mread Date: Thu, 30 Sep 2010 14:49:13 +0100 Subject: hybrid heap improvement in the disabling of BTrace Using an inline function for noBTrace() which can be optimised to nothing. Task-number: QT-3967 Reviewed-by: Shane Kearns --- src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 8 -------- src/corelib/arch/symbian/qt_hybridheap_symbian_p.h | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp index b8193f1..d6b7351 100644 --- a/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp +++ b/src/corelib/arch/symbian/qt_heapsetup_symbian.cpp @@ -88,14 +88,6 @@ void Panic(TCdtPanic reason) User::Panic(KCat, reason); } -// disabling the BTrace components of heap checking macros -#ifndef ENABLE_BTRACE -int noBTrace() -{ - return 0; -} -#endif - #else /* QT_USE_NEW_SYMBIAN_ALLOCATOR */ #include diff --git a/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h index a59f29e..5827aca 100644 --- a/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h +++ b/src/corelib/arch/symbian/qt_hybridheap_symbian_p.h @@ -96,7 +96,7 @@ // disabling the BTrace components of heap checking macros #ifndef ENABLE_BTRACE -extern int noBTrace(); +inline int noBTrace() {return 0;} #define BTraceContext12(a,b,c,d,e) noBTrace() #endif -- cgit v0.12 From 1f8bb573f06234a3d13fb57de5eb644824d5024f Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 30 Sep 2010 17:23:27 +0200 Subject: Use setParentItem() instead of setParentItemHelper if componentComplete is true This ensures that if the component has already been completed, itemChange() is called. This is required to modify QDeclarativePositions in the visual editor, while keeping a legal state. Without this patch notifications are missing and the Positioner keeps track of already deleted children. This resulted in a crash. Reviewed-by: Thomas Hartmann --- .../graphicsitems/qdeclarativeflickable.cpp | 24 +++++++++++++++++----- src/declarative/graphicsitems/qdeclarativeitem.cpp | 19 +++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index f9c16b3..33c21b1 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -1046,10 +1046,16 @@ void QDeclarativeFlickable::cancelFlick() void QDeclarativeFlickablePrivate::data_append(QDeclarativeListProperty *prop, QObject *o) { QGraphicsObject *i = qobject_cast(o); - if (i) - i->setParentItem(static_cast(prop->data)->contentItem); - else + if (i) { + QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(i); + if (static_cast(d)->componentComplete) { + i->setParentItem(static_cast(prop->data)->contentItem); + } else { + d->setParentItemHelper(static_cast(prop->data)->contentItem, 0, 0); + } + } else { o->setParent(prop->object); + } } static inline int children_count_helper(QGraphicsObject *object) @@ -1071,8 +1077,16 @@ static inline void children_clear_helper(QGraphicsObject *object) { QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(object); int childCount = d->children.count(); - for (int index = 0 ;index < childCount; index++) - QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + if (static_cast(d)->componentComplete) { + for (int index = 0 ;index < childCount; index++) { + d->children.at(0)->setParentItem(0); + } + } else { + for (int index = 0 ;index < childCount; index++) { + QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + } + } + } int QDeclarativeFlickablePrivate::data_count(QDeclarativeListProperty *prop) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 484c168..250a43b 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1614,7 +1614,13 @@ void QDeclarativeItemPrivate::data_append(QDeclarativeListProperty *pro while (mo && mo != &QGraphicsObject::staticMetaObject) mo = mo->d.superdata; if (mo) { - QGraphicsItemPrivate::get(static_cast(o))->setParentItemHelper(that, 0, 0); + QGraphicsObject *graphicsObject = static_cast(o); + QDeclarativeItemPrivate *contentItemPrivate = static_cast(QGraphicsItemPrivate::get(graphicsObject)); + if (contentItemPrivate->componentComplete) { + graphicsObject->setParentItem(that); + } else { + contentItemPrivate->setParentItemHelper(that, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + } } else { o->setParent(that); } @@ -1637,10 +1643,15 @@ static inline QObject *children_at_helper(QDeclarativeListProperty *pro static inline void children_clear_helper(QDeclarativeListProperty *prop) { - QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(static_cast(prop->object)); + QDeclarativeItemPrivate *d = static_cast(QGraphicsItemPrivate::get(static_cast(prop->object))); int childCount = d->children.count(); - for (int index = 0 ;index < childCount; index++) - QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + if (d->componentComplete) { + for (int index = 0 ;index < childCount; index++) + d->children.at(0)->setParentItem(0); + } else { + for (int index = 0 ;index < childCount; index++) + QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + } } int QDeclarativeItemPrivate::data_count(QDeclarativeListProperty *prop) -- cgit v0.12 From 3b43389b78925ce87d660c343c925fa280b91e11 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 30 Sep 2010 16:27:25 +0200 Subject: Add sendParentChangeNotification to QGraphicsItem Fixes crash in creator. If flag is true notifications are sent. It is important that positioners work correctly and don't leak. Reviewed-By: Alexis Menard --- src/gui/graphicsview/qgraphicsitem.cpp | 16 +++++++++++++--- src/gui/graphicsview/qgraphicsitem_p.h | 4 +++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index b404692..3b18c31 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -7669,7 +7669,12 @@ void QGraphicsObject::updateMicroFocus() void QGraphicsItemPrivate::children_append(QDeclarativeListProperty *list, QGraphicsObject *item) { - QGraphicsItemPrivate::get(item)->setParentItemHelper(static_cast(list->object), /*newParentVariant=*/0, /*thisPointerVariant=*/0); + QGraphicsObject *graphicsObject = static_cast(list->object); + if (QGraphicsItemPrivate::get(graphicsObject)->sendParentChangeNotification) { + item->setParentItem(graphicsObject); + } else { + QGraphicsItemPrivate::get(item)->setParentItemHelper(graphicsObject, 0, 0); + } } int QGraphicsItemPrivate::children_count(QDeclarativeListProperty *list) @@ -7691,8 +7696,13 @@ void QGraphicsItemPrivate::children_clear(QDeclarativeListProperty(list->object)); int childCount = d->children.count(); - for (int index = 0; index < childCount; index++) - QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, /*newParentVariant=*/0, /*thisPointerVariant=*/0); + if (d->sendParentChangeNotification) { + for (int index = 0; index < childCount; index++) + d->children.at(0)->setParentItem(0); + } else { + for (int index = 0; index < childCount; index++) + QGraphicsItemPrivate::get(d->children.at(0))->setParentItemHelper(0, 0, 0); + } } /*! diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 77e4054..c8a7699 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -238,6 +238,7 @@ public: pendingPolish(0), mayHaveChildWithGraphicsEffect(0), isDeclarativeItem(0), + sendParentChangeNotification(0), globalStackingOrder(-1), q_ptr(0) { @@ -584,7 +585,8 @@ public: quint32 pendingPolish : 1; quint32 mayHaveChildWithGraphicsEffect : 1; quint32 isDeclarativeItem : 1; - quint32 padding : 23; + quint32 sendParentChangeNotification : 1; + quint32 padding : 22; // Optional stacking order int globalStackingOrder; -- cgit v0.12 From cfe198948f1e4867918176df38b3e0b49757a4b8 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 30 Sep 2010 17:49:19 +0200 Subject: QDeclarativeDebug: Make autotests more robust Always flush sockets after sending data, and make autotests more robust by using busy wait. Reviewed-by: Christiaan Janssen --- src/declarative/debugger/qdeclarativedebugclient.cpp | 3 +++ src/declarative/debugger/qdeclarativedebugservice.cpp | 1 + .../tst_qdeclarativedebugclient.cpp | 9 ++++----- .../tst_qdeclarativedebugservice.cpp | 14 ++++++-------- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index 5baaf70..977e58e 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -99,6 +99,7 @@ void QDeclarativeDebugConnectionPrivate::advertisePlugins() QPacket pack; pack << serverId << 1 << plugins.keys(); protocol->send(pack); + q->flush(); } void QDeclarativeDebugConnectionPrivate::connected() @@ -106,6 +107,7 @@ void QDeclarativeDebugConnectionPrivate::connected() QPacket pack; pack << serverId << 0 << protocolVersion << plugins.keys(); protocol->send(pack); + q->flush(); } void QDeclarativeDebugConnectionPrivate::readyRead() @@ -274,6 +276,7 @@ void QDeclarativeDebugClient::sendMessage(const QByteArray &message) QPacket pack; pack << d->name << message; d->client->d->protocol->send(pack); + d->client->d->q->flush(); } void QDeclarativeDebugClient::statusChanged(Status) diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp index 62f2f39..d2ef00d 100644 --- a/src/declarative/debugger/qdeclarativedebugservice.cpp +++ b/src/declarative/debugger/qdeclarativedebugservice.cpp @@ -142,6 +142,7 @@ void QDeclarativeDebugServerPrivate::advertisePlugins() QPacket pack; pack << QString(QLatin1String("QDeclarativeDebugClient")) << 1 << plugins.keys(); protocol->send(pack); + connection->flush(); } void QDeclarativeDebugServer::listen() diff --git a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp index a5f9846..80241ba 100644 --- a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp +++ b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp @@ -112,12 +112,10 @@ void tst_QDeclarativeDebugClient::status() { QDeclarativeDebugTestService service("tst_QDeclarativeDebugClient::status()"); - QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); - QCOMPARE(client.status(), QDeclarativeDebugClient::Enabled); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Enabled); } - QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); - QCOMPARE(client.status(), QDeclarativeDebugClient::Unavailable); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Unavailable); // duplicate plugin name QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugClient: Conflicting plugin name \"tst_QDeclarativeDebugClient::status()\" "); @@ -135,7 +133,8 @@ void tst_QDeclarativeDebugClient::sendMessage() QByteArray msg = "hello!"; - QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Enabled); + client.sendMessage(msg); QByteArray resp = client.waitForResponse(); QCOMPARE(resp, msg); diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp index bce4713..538129c 100644 --- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp +++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp @@ -103,12 +103,12 @@ void tst_QDeclarativeDebugService::status() { QDeclarativeDebugTestClient client("tst_QDeclarativeDebugService::status()", m_conn); - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); - QCOMPARE(service.status(), QDeclarativeDebugService::Enabled); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Enabled); + QTRY_COMPARE(service.status(), QDeclarativeDebugService::Enabled); } - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); - QCOMPARE(service.status(), QDeclarativeDebugService::Unavailable); + + QTRY_COMPARE(service.status(), QDeclarativeDebugService::Unavailable); QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugService: Conflicting plugin name \"tst_QDeclarativeDebugService::status()\" "); @@ -123,10 +123,8 @@ void tst_QDeclarativeDebugService::sendMessage() QByteArray msg = "hello!"; - if (service.status() != QDeclarativeDebugService::Enabled) - QDeclarativeDebugTest::waitForSignal(&service, SIGNAL(statusHasChanged())); - if (client.status() != QDeclarativeDebugClient::Enabled) - QDeclarativeDebugTest::waitForSignal(&client, SIGNAL(statusHasChanged())); + QTRY_COMPARE(client.status(), QDeclarativeDebugClient::Enabled); + QTRY_COMPARE(service.status(), QDeclarativeDebugService::Enabled); client.sendMessage(msg); QByteArray resp = client.waitForResponse(); -- cgit v0.12