mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 12:37:51 +02:00
fix a crash in ESS from missing dependency
This commit is contained in:
parent
04d72ea39d
commit
3b5ba71163
1 changed files with 16 additions and 8 deletions
|
@ -24,6 +24,7 @@
|
||||||
#include <plugins/CodecPlugin.h>
|
#include <plugins/CodecPlugin.h>
|
||||||
#include <plugins/PluginManager.h>
|
#include <plugins/PluginManager.h>
|
||||||
#include <ResourceManager.h>
|
#include <ResourceManager.h>
|
||||||
|
#include <ResourceScriptingInterface.h>
|
||||||
#include <ScriptCache.h>
|
#include <ScriptCache.h>
|
||||||
#include <ScriptEngines.h>
|
#include <ScriptEngines.h>
|
||||||
#include <SoundCacheScriptingInterface.h>
|
#include <SoundCacheScriptingInterface.h>
|
||||||
|
@ -55,7 +56,8 @@ int EntityScriptServer::_entitiesScriptEngineCount = 0;
|
||||||
EntityScriptServer::EntityScriptServer(ReceivedMessage& message) : ThreadedAssignment(message) {
|
EntityScriptServer::EntityScriptServer(ReceivedMessage& message) : ThreadedAssignment(message) {
|
||||||
qInstallMessageHandler(messageHandler);
|
qInstallMessageHandler(messageHandler);
|
||||||
|
|
||||||
DependencyManager::get<EntityScriptingInterface>()->setPacketSender(&_entityEditSender);
|
DependencyManager::set<EntityScriptingInterface>(false)->setPacketSender(&_entityEditSender);
|
||||||
|
DependencyManager::set<ResourceScriptingInterface>();
|
||||||
|
|
||||||
DependencyManager::set<ResourceManager>();
|
DependencyManager::set<ResourceManager>();
|
||||||
DependencyManager::set<PluginManager>();
|
DependencyManager::set<PluginManager>();
|
||||||
|
@ -559,6 +561,7 @@ void EntityScriptServer::handleOctreePacket(QSharedPointer<ReceivedMessage> mess
|
||||||
void EntityScriptServer::aboutToFinish() {
|
void EntityScriptServer::aboutToFinish() {
|
||||||
shutdownScriptEngine();
|
shutdownScriptEngine();
|
||||||
|
|
||||||
|
{
|
||||||
auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
|
auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
|
||||||
// our entity tree is going to go away so tell that to the EntityScriptingInterface
|
// our entity tree is going to go away so tell that to the EntityScriptingInterface
|
||||||
entityScriptingInterface->setEntityTree(nullptr);
|
entityScriptingInterface->setEntityTree(nullptr);
|
||||||
|
@ -568,6 +571,7 @@ void EntityScriptServer::aboutToFinish() {
|
||||||
// The packet sender is about to go away.
|
// The packet sender is about to go away.
|
||||||
entityScriptingInterface->setPacketSender(nullptr);
|
entityScriptingInterface->setPacketSender(nullptr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DependencyManager::destroy<AssignmentParentFinder>();
|
DependencyManager::destroy<AssignmentParentFinder>();
|
||||||
|
|
||||||
|
@ -575,8 +579,12 @@ void EntityScriptServer::aboutToFinish() {
|
||||||
|
|
||||||
DependencyManager::destroy<PluginManager>();
|
DependencyManager::destroy<PluginManager>();
|
||||||
|
|
||||||
|
DependencyManager::destroy<ResourceScriptingInterface>();
|
||||||
|
DependencyManager::destroy<EntityScriptingInterface>();
|
||||||
|
|
||||||
// cleanup the AudioInjectorManager (and any still running injectors)
|
// cleanup the AudioInjectorManager (and any still running injectors)
|
||||||
DependencyManager::destroy<AudioInjectorManager>();
|
DependencyManager::destroy<AudioInjectorManager>();
|
||||||
|
|
||||||
DependencyManager::destroy<ScriptEngines>();
|
DependencyManager::destroy<ScriptEngines>();
|
||||||
DependencyManager::destroy<EntityScriptServerServices>();
|
DependencyManager::destroy<EntityScriptServerServices>();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue