diff --git a/examples/controllers/controllerMappings.js b/examples/controllers/controllerMappings.js index d314df3f4c..4de173f16c 100644 --- a/examples/controllers/controllerMappings.js +++ b/examples/controllers/controllerMappings.js @@ -70,7 +70,7 @@ mapping2.enable(); Controller.enableMapping("example2"); */ -var mapping3 = Controller.loadMapping("E:/Github/hifi/examples/controllers/example3.json"); +var mapping3 = Controller.loadMapping(Script.resolvePath("example3.json")); Controller.enableMapping("example3"); /* diff --git a/libraries/controllers/src/controllers/ScriptingInterface.cpp b/libraries/controllers/src/controllers/ScriptingInterface.cpp index 80816d9773..6edcaecd3c 100644 --- a/libraries/controllers/src/controllers/ScriptingInterface.cpp +++ b/libraries/controllers/src/controllers/ScriptingInterface.cpp @@ -209,6 +209,7 @@ namespace controller { } QObject* ScriptingInterface::loadMapping(const QString& jsonUrl) { + QObject* result = nullptr; auto request = ResourceManager::createResourceRequest(nullptr, QUrl(jsonUrl)); if (request) { QEventLoop eventLoop; @@ -220,12 +221,13 @@ namespace controller { } if (request->getResult() == ResourceRequest::Success) { - return parseMapping(QString(request->getData())); + result = parseMapping(QString(request->getData())); } else { qDebug() << "Failed to load mapping url <" << jsonUrl << ">" << endl; - return nullptr; } + request->deleteLater(); } + return result; } Q_INVOKABLE QObject* newMapping(const QJsonObject& json);