Merge remote-tracking branch 'origin/5.3' into dev
authorFrederik Gladhorn <frederik.gladhorn@digia.com>
Tue, 29 Jul 2014 10:49:37 +0000 (12:49 +0200)
committerFrederik Gladhorn <frederik.gladhorn@digia.com>
Tue, 29 Jul 2014 10:49:37 +0000 (12:49 +0200)
Change-Id: Id95f7b01de36bccecbb7b73acc041654a1fe2ebe

1  2 
src/qml/compiler/qqmltypecompiler.cpp
src/qml/qml/qqmlobjectcreator.cpp
src/quick/items/qquickmousearea_p.h
src/quick/items/qquickshadereffectsource.cpp
tests/auto/qml/qqmlecmascript/testtypes.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp

Simple merge
@@@ -258,10 -267,13 +267,13 @@@ bool QQmlObjectCreator::populateDeferre
  
      QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
      QV4::Scope valueScope(v4);
-     QV4::ScopedValue scopeObjectProtector(valueScope, declarativeData->jsWrapper.value());
-     Q_UNUSED(scopeObjectProtector);
+     Q_ASSERT(topLevelCreator);
+     Q_ASSERT(!sharedState->allJavaScriptObjects);
+     sharedState->allJavaScriptObjects = valueScope.alloc(compiledData->totalObjectCount);
      QV4::ScopedObject qmlScope(valueScope, QV4::QmlContextWrapper::qmlScope(QV8Engine::get(engine), context, _scopeObject));
 -    QV4::Scoped<QV4::QmlBindingWrapper> qmlBindingWrapper(valueScope, new (v4->memoryManager) QV4::QmlBindingWrapper(v4->rootContext, qmlScope));
 +    QV4::Scoped<QV4::QmlBindingWrapper> qmlBindingWrapper(valueScope, v4->memoryManager->alloc<QV4::QmlBindingWrapper>(v4->rootContext, qmlScope));
      QV4::ExecutionContext *qmlContext = qmlBindingWrapper->context();
  
      qSwap(_qmlContext, qmlContext);
@@@ -1159,11 -1162,14 +1171,14 @@@ QObject *QQmlObjectCreator::createInsta
      qSwap(_scopeObject, scopeObject);
  
      QV4::ExecutionEngine *v4 = QV8Engine::getV4(engine);
+     Q_ASSERT(sharedState->allJavaScriptObjects);
+     QV4::ValueRef ref = QV4::ValueRef::fromRawValue(sharedState->allJavaScriptObjects++);
+     ref = QV4::QObjectWrapper::wrap(v4, instance);
      QV4::Scope valueScope(v4);
-     QV4::ScopedValue scopeObjectProtector(valueScope, ddata ? ddata->jsWrapper.value() : 0);
-     Q_UNUSED(scopeObjectProtector);
      QV4::ScopedObject qmlScope(valueScope, QV4::QmlContextWrapper::qmlScope(QV8Engine::get(engine), context, _scopeObject));
 -    QV4::Scoped<QV4::QmlBindingWrapper> qmlBindingWrapper(valueScope, new (v4->memoryManager) QV4::QmlBindingWrapper(v4->rootContext, qmlScope));
 +    QV4::Scoped<QV4::QmlBindingWrapper> qmlBindingWrapper(valueScope, v4->memoryManager->alloc<QV4::QmlBindingWrapper>(v4->rootContext, qmlScope));
      QV4::ExecutionContext *qmlContext = qmlBindingWrapper->context();
  
      qSwap(_qmlContext, qmlContext);
Simple merge