From 7e2d3377ed225a33424ded290e122ec80982a223 Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Fri, 16 Dec 2016 21:26:36 +0000 Subject: [PATCH] this proxy list sometimes went out of scope before copied, fix it so we don't bug any more toons! --- .../src/shared/ScriptMethodsObjectInfo.cpp | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp b/engine/server/library/serverScript/src/shared/ScriptMethodsObjectInfo.cpp index 3a78cfce..453e5e7f 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) { - if (JavaLibrary::getObject(obj, object)) + ServerObject *object = nullptr; + if (JavaLibrary::getObject(obj, object) && object != nullptr) { - ProxyList const &proxyList = object->getExposedProxyList(); + ProxyList proxyList(object->getExposedProxyList()); if (!proxyList.empty()) { - std::vector data; - if (ScriptConversion::convert(buffer, data)) - { - if(data.size() > 0) + std::vector data; + if (ScriptConversion::convert(buffer, data)) { - WARNING(data.size() > 60000, ("JavaLibrary::sendScriptVarsToProxies: " - "Packing scriptvars for object %s, packed data size = %d", + if(data.size() > 0) + { + 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) { - syncServers.erase(myProcessId); - syncServers.insert(authProcessId); + proxyList.erase(myProcessId); + proxyList.insert(authProcessId); } - - ServerMessageForwarding::begin(std::vector(syncServers.begin(), syncServers.end())); - + + ServerMessageForwarding::begin(std::vector(proxyList.begin(), proxyList.end())); SynchronizeScriptVarDeltasMessage const deltasMessage(object->getNetworkId(), data); + ServerMessageForwarding::send(deltasMessage); - ServerMessageForwarding::end(); } }