History

convert script engine variables from QSharedPointer to std::shared_ptr

Heather Anderson committed 5 years ago

Commit 70fbe761 parent 82535ca49 files · +194 −164Browse files

Showing the changes to libraries/script-engine/src/ScriptManager.cpp (1 of 49 files). Show all

Unified · Split

libraries/script-engine/src/ScriptManager.cpp+16−14
@@ -133,7 +133,7 @@ static ScriptValue debugPrint(ScriptContext* context, ScriptEngine* engine) { · 132 unmodified lines
133133 ScriptContextPointer parentContext; // using this variable to maintain parent variable lifespan
134134 while (userContext && userContext->functionContext()->functionType() == ScriptFunctionContext::NativeFunction) {
135135 parentContext = userContext->parentContext();
136− userContext = parentContext.data();
136+ userContext = parentContext.get();
137137 }
138138 QString location;
139139 if (userContext) {
@@ -211,7 +211,8 @@ ScriptManagerPointer scriptManagerFactory(ScriptManager::Context context, · 71 unmodified lines
211211 ScriptManagerPointer newScriptManager(ScriptManager::Context context,
212212 const QString& scriptContents,
213213 const QString& fileNameString) {
214− ScriptManagerPointer manager(new ScriptManager(context, scriptContents, fileNameString), &QObject::deleteLater);
214+ ScriptManagerPointer manager(new ScriptManager(context, scriptContents, fileNameString),
215+ [](ScriptManager* obj) { obj->deleteLater(); });
215216 ScriptEnginePointer engine = newScriptEngine(manager.get());
216217 manager->_engine = engine;
217218 return manager;
@@ -559,7 +560,7 @@ static ScriptValue createScriptableResourcePrototype(ScriptManagerPointer manage · 341 unmodified lines
559560 auto prototype = engine->newObject();
560561
561562 // Expose enum State to JS/QML via properties
562− QObject* state = new QObject(manager.data());
563+ QObject* state = new QObject(manager.get());
563564 state->setObjectName("ResourceState");
564565 auto metaEnum = QMetaEnum::fromType<ScriptableResource::State>();
565566 for (int i = 0; i < metaEnum.keyCount(); ++i) {
@@ -623,7 +624,7 @@ void ScriptManager::init() { · 57 unmodified lines
623624 _isInitialized = true;
624625 runStaticInitializers(this);
625626
626− auto scriptEngine = _engine.data();
627+ auto scriptEngine = _engine.get();
627628
628629 // register various meta-types
629630 registerMIDIMetaTypes(scriptEngine);
@@ -693,7 +694,7 @@ void ScriptManager::init() { · 63 unmodified lines
693694 scriptEngine->registerFunction("console", "groupEnd", ConsoleScriptingInterface::groupEnd, 0);
694695
695696 // Scriptable cache access
696− auto resourcePrototype = createScriptableResourcePrototype(qSharedPointerCast<ScriptManager>(sharedFromThis()));
697+ auto resourcePrototype = createScriptableResourcePrototype(shared_from_this());
697698 scriptEngine->globalObject().setProperty("Resource", resourcePrototype);
698699 scriptEngine->setDefaultPrototype(qMetaTypeId<ScriptableResource*>(), resourcePrototype);
699700 scriptRegisterMetaType(scriptEngine, scriptableResourceToScriptValue, scriptableResourceFromScriptValue);
@@ -960,7 +961,7 @@ void ScriptManager::run() { · 260 unmodified lines
960961
961962 emit releaseEntityPacketSenderMessages(true);
962963
963− emit finished(_fileNameString, qSharedPointerCast<ScriptManager>(sharedFromThis()));
964+ emit finished(_fileNameString, shared_from_this());
964965
965966 // Don't leave our local-file-access flag laying around, reset it to false when the scriptengine
966967 // thread is finished
@@ -1117,7 +1118,7 @@ QUrl ScriptManager::resolvePath(const QString& include) const { · 150 unmodified lines
11171118 auto contextInfo = context->functionContext();
11181119 parentURL = QUrl(contextInfo->fileName());
11191120 parentContext = context->parentContext();
1120− context = parentContext.data();
1121+ context = parentContext.get();
11211122 } while (parentURL.isRelative() && context);
11221123
11231124 if (parentURL.isRelative()) {
@@ -1258,7 +1259,8 @@ ScriptValue ScriptManager::currentModule() { · 134 unmodified lines
12581259 auto cache = jsRequire.property("cache");
12591260 ScriptValue candidate;
12601261 ScriptContextPointer parentContext; // using this variable to maintain parent variable lifespan
1261− for (auto context = _engine->currentContext(); context && !candidate.isObject(); parentContext = context->parentContext(), context = parentContext.data()) {
1262+ for (auto context = _engine->currentContext(); context && !candidate.isObject();
1263+ parentContext = context->parentContext(), context = parentContext.get()) {
12621264 auto contextInfo = context->functionContext();
12631265 candidate = cache.property(contextInfo->fileName());
12641266 }
@@ -1808,10 +1810,10 @@ void ScriptManager::loadEntityScript(const EntityItemID& entityID, const QString · 543 unmodified lines
18081810
18091811 auto scriptCache = DependencyManager::get<ScriptCache>();
18101812 // note: see EntityTreeRenderer.cpp for shared pointer lifecycle management
1811− QWeakPointer<ScriptManager> weakRef(sharedFromThis());
1813+ std::weak_ptr<ScriptManager> weakRef(shared_from_this());
18121814 scriptCache->getScriptContents(entityScript,
18131815 [this, weakRef, entityScript, entityID](const QString& url, const QString& contents, bool isURL, bool success, const QString& status) {
1814− QSharedPointer<ScriptManager> strongRef(weakRef);
1816+ std::shared_ptr<ScriptManager> strongRef(weakRef);
18151817 if (!strongRef) {
18161818 qCWarning(scriptengine) << "loadEntityScript.contentAvailable -- ScriptManager was deleted during getScriptContents!!";
18171819 return;
@@ -1929,7 +1931,7 @@ void ScriptManager::entityScriptContentAvailable(const EntityItemID& entityID, c · 111 unmodified lines
19291931 return;
19301932 }
19311933 auto program = _engine->newProgram( contents, fileName );
1932− if (program.isNull()) {
1934+ if (!program) {
19331935 setError("Bad program (isNull)", EntityScriptStatus::ERROR_RUNNING_SCRIPT);
19341936 emit unhandledException(_engine->makeError(_engine->newValue("program.isNull")));
19351937 return; // done processing script
@@ -2337,7 +2339,7 @@ void ScriptManager::callEntityScriptMethod(const EntityItemID& entityID, const Q · 401 unmodified lines
23372339 }
23382340
23392341 if (callAllowed && entityScript.property(methodName).isFunction()) {
2340− auto scriptEngine = engine().data();
2342+ auto scriptEngine = engine().get();
23412343
23422344 ScriptValueList args;
23432345 args << EntityItemIDtoScriptValue(scriptEngine, entityID);
@@ -2380,7 +2382,7 @@ void ScriptManager::callEntityScriptMethod(const EntityItemID& entityID, const Q · 36 unmodified lines
23802382 }
23812383 ScriptValue entityScript = details.scriptObject; // previously loaded
23822384 if (entityScript.property(methodName).isFunction()) {
2383− auto scriptEngine = engine().data();
2385+ auto scriptEngine = engine().get();
23842386
23852387 ScriptValueList args;
23862388 args << EntityItemIDtoScriptValue(scriptEngine, entityID);
@@ -2420,7 +2422,7 @@ void ScriptManager::callEntityScriptMethod(const EntityItemID& entityID, const Q · 33 unmodified lines
24202422 }
24212423 ScriptValue entityScript = details.scriptObject; // previously loaded
24222424 if (entityScript.property(methodName).isFunction()) {
2423− auto scriptEngine = engine().data();
2425+ auto scriptEngine = engine().get();
24242426
24252427 ScriptValueList args;
24262428 args << EntityItemIDtoScriptValue(scriptEngine, entityID);