From 4b40913c1df9af237b321a05330e3a37c7d21dc4 Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Wed, 21 Dec 2016 07:21:41 +0000 Subject: [PATCH] cleanups --- .../serverDatabase/src/shared/Persister.cpp | 2 +- .../serverGame/src/shared/core/GameServer.cpp | 6 +++- .../src/shared/ScriptMethodsObjectInfo.cpp | 32 +++++++++---------- .../src/shared/buffers/ObjvarBuffer.cpp | 8 ++--- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/engine/server/library/serverDatabase/src/shared/Persister.cpp b/engine/server/library/serverDatabase/src/shared/Persister.cpp index d565ef27..fa57c58b 100755 --- a/engine/server/library/serverDatabase/src/shared/Persister.cpp +++ b/engine/server/library/serverDatabase/src/shared/Persister.cpp @@ -230,7 +230,7 @@ void Persister::onFrameBarrierReached() for (ObjectSnapshotMap::iterator obj=m_objectSnapshotMap.begin(); obj!=m_objectSnapshotMap.end();) { if (obj->second == i->second) - m_objectSnapshotMap.erase(obj++); + obj = m_objectSnapshotMap.erase(obj); else ++obj; } diff --git a/engine/server/library/serverGame/src/shared/core/GameServer.cpp b/engine/server/library/serverGame/src/shared/core/GameServer.cpp index fb0791cf..e8f25f32 100755 --- a/engine/server/library/serverGame/src/shared/core/GameServer.cpp +++ b/engine/server/library/serverGame/src/shared/core/GameServer.cpp @@ -643,7 +643,11 @@ void GameServer::connectToDatabaseProcess(std::string const &address, uint16 por void GameServer::createRemoteProxy(uint32 remoteProcessId, ServerObject *object) { - WARNING_STRICT_FATAL(!object, ("Told to create an object on %d we know nothing about!\n", remoteProcessId)); + if (!object) { + WARNING(!object, ("Told to create an object on %d we know nothing about!\n", remoteProcessId)); + return; + } + NetworkId objectId = object->getNetworkId(); DEBUG_REPORT_LOG(ConfigServerGame::getLogObjectLoading(),("createRemoteProxy(%lu,%s)\n",remoteProcessId, objectId.getValueString().c_str())); diff --git a/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp b/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp index 453e5e7f..3a78cfce 100755 --- a/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp +++ b/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp @@ -3367,38 +3367,38 @@ void JNICALL ScriptMethodsObjectInfoNamespace::sendScriptVarsToProxies(JNIEnv * { PROFILER_AUTO_BLOCK_DEFINE("JNI::sendScriptVarsToProxies"); + ServerObject * object = 0; if (obj != 0 && buffer != 0) { - ServerObject *object = nullptr; - if (JavaLibrary::getObject(obj, object) && object != nullptr) + if (JavaLibrary::getObject(obj, object)) { - ProxyList proxyList(object->getExposedProxyList()); + ProxyList const &proxyList = object->getExposedProxyList(); if (!proxyList.empty()) { - std::vector data; - if (ScriptConversion::convert(buffer, data)) + std::vector data; + if (ScriptConversion::convert(buffer, data)) + { + if(data.size() > 0) { - if(data.size() > 0) - { - WARNING(data.size() > 60000, ("JavaLibrary::sendScriptVarsToProxies: " - "Packing scriptvars for object %s, packed data size = %d", - + WARNING(data.size() > 60000, ("JavaLibrary::sendScriptVarsToProxies: " + "Packing scriptvars for object %s, packed data size = %d", object->getNetworkId().getValueString().c_str(), static_cast(data.size()))); uint32 const myProcessId = GameServer::getInstance().getProcessId(); uint32 const authProcessId = object->getAuthServerProcessId(); - + ProxyList syncServers(proxyList); if (myProcessId != authProcessId) { - proxyList.erase(myProcessId); - proxyList.insert(authProcessId); + syncServers.erase(myProcessId); + syncServers.insert(authProcessId); } - - ServerMessageForwarding::begin(std::vector(proxyList.begin(), proxyList.end())); + + ServerMessageForwarding::begin(std::vector(syncServers.begin(), syncServers.end())); + SynchronizeScriptVarDeltasMessage const deltasMessage(object->getNetworkId(), data); - ServerMessageForwarding::send(deltasMessage); + ServerMessageForwarding::end(); } } diff --git a/game/server/application/SwgDatabaseServer/src/shared/buffers/ObjvarBuffer.cpp b/game/server/application/SwgDatabaseServer/src/shared/buffers/ObjvarBuffer.cpp index 5e148cb2..59928dbc 100755 --- a/game/server/application/SwgDatabaseServer/src/shared/buffers/ObjvarBuffer.cpp +++ b/game/server/application/SwgDatabaseServer/src/shared/buffers/ObjvarBuffer.cpp @@ -325,12 +325,8 @@ ObjvarBuffer::updateObjvars(const NetworkId &objectId, const std::vector first.m_objectId == object) { - i = m_data.erase(i); - } else { - ++i; - } + while (i != m_data.end() && i->first.m_objectId==object) { + i = m_data.erase(i); } }