Merge remote-tracking branch 'origin/5.3' into 5.4
authorSimon Hausmann <simon.hausmann@digia.com>
Tue, 12 Aug 2014 08:03:53 +0000 (10:03 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Tue, 12 Aug 2014 08:04:33 +0000 (10:04 +0200)
Conflicts:
src/qml/jsruntime/qv4include.cpp
src/quick/items/qquickrendercontrol.cpp
src/quick/items/qquickrendercontrol_p.h
src/quickwidgets/qquickwidget.cpp

Change-Id: Ib2dc0051a38cd283a37a7665eb4a76f6f7ec8b15

1  2 
src/qml/compiler/qqmltypecompiler.cpp
src/qml/jsruntime/qv4include.cpp
src/qml/qml/qqmlcomponent.cpp
src/qml/qml/qqmlincubator.cpp
src/quick/items/qquickframebufferobject.cpp
src/quick/items/qquickpathview.cpp
src/quick/util/qquickanimatorjob.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp

Simple merge
@@@ -209,29 -210,37 +209,37 @@@ QV4::ReturnedValue QV4Include::method_i
          result = i->result();
  
      } else {
+         QScopedPointer<QV4::Script> script;
  
-         QFile f(localFile);
+         if (const QQmlPrivate::CachedQmlUnit *cachedUnit = QQmlMetaType::findCachedCompilationUnit(url)) {
+             QV4::CompiledData::CompilationUnit *jsUnit = cachedUnit->createCompilationUnit();
 -            script.reset(new QV4::Script(v4, qmlcontextobject, jsUnit));
++            script.reset(new QV4::Script(scope.engine, qmlcontextobject, jsUnit));
+         } else {
+             QFile f(localFile);
  
-         if (f.open(QIODevice::ReadOnly)) {
-             QByteArray data = f.readAll();
-             QString code = QString::fromUtf8(data);
-             QmlIR::Document::removeScriptPragmas(code);
+             if (f.open(QIODevice::ReadOnly)) {
+                 QByteArray data = f.readAll();
+                 QString code = QString::fromUtf8(data);
+                 QmlIR::Document::removeScriptPragmas(code);
  
-             QV4::Script script(scope.engine, qmlcontextobject, code, url.toString());
 -                script.reset(new QV4::Script(v4, qmlcontextobject, code, url.toString()));
++                script.reset(new QV4::Script(scope.engine, qmlcontextobject, code, url.toString()));
+             }
+         }
  
 -            QV4::ExecutionContext *ctx = v4->currentContext();
+         if (!script.isNull()) {
-             script.parse();
 +            QV4::ExecutionContext *ctx = scope.engine->currentContext();
 -            if (!v4->hasException)
+             script->parse();
-                 script.run();
 +            if (!scope.engine->hasException)
 -            if (v4->hasException) {
+                 script->run();
 +            if (scope.engine->hasException) {
                  QV4::ScopedValue ex(scope, ctx->catchException());
 -                result = resultValue(v4, Exception);
 -                result->asObject()->put(QV4::ScopedString(scope, v4->newString(QStringLiteral("exception"))), ex);
 +                result = resultValue(scope.engine, Exception);
 +                result->asObject()->put(scope.engine->newString(QStringLiteral("exception"))->getPointer(), ex);
              } else {
 -                result = resultValue(v4, Ok);
 +                result = resultValue(scope.engine, Ok);
              }
          } else {
 -            result = resultValue(v4, NetworkError);
 +            result = resultValue(scope.engine, NetworkError);
          }
  
          callback(callbackFunction, result);
Simple merge
@@@ -292,12 -292,9 +292,9 @@@ void QQmlIncubatorPrivate::incubate(QQm
      QQmlEngine *engine = compiledData->engine;
      QQmlEnginePrivate *enginePriv = QQmlEnginePrivate::get(engine);
  
-     bool guardOk = vmeGuard.isOK();
-     vmeGuard.clear();
-     if (!guardOk) {
+     if (!vmeGuard.isOK()) {
          QQmlError error;
 -        error.setUrl(compiledData->url);
 +        error.setUrl(compiledData->url());
          error.setDescription(QQmlComponent::tr("Object destroyed during incubation"));
          errors << error;
          progress = QQmlIncubatorPrivate::Completed;
Simple merge
Simple merge