diff options
Diffstat (limited to 'indra/llplugin/llpluginprocessparent.cpp')
-rwxr-xr-x[-rw-r--r--] | indra/llplugin/llpluginprocessparent.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index 71a6145b58..b5a2588e1e 100644..100755 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -31,6 +31,7 @@ #include "llpluginprocessparent.h" #include "llpluginmessagepipe.h" #include "llpluginmessageclasses.h" +#include "llsdserialize.h" #include "stringize.h" #include "llapr.h" @@ -130,6 +131,8 @@ LLPluginProcessParent::~LLPluginProcessParent() { // destroy the shared memory region iter->second->destroy(); + delete iter->second; + iter->second = NULL; // and remove it from our map mSharedMemoryRegions.erase(iter); @@ -184,7 +187,7 @@ bool LLPluginProcessParent::accept() if(status == APR_SUCCESS) { -// llinfos << "SUCCESS" << llendl; +// LL_INFOS() << "SUCCESS" << LL_ENDL; // Success. Create a message pipe on the new socket // we MUST create a new pool for the LLSocket, since it will take ownership of it and delete it in its destructor! @@ -198,14 +201,14 @@ bool LLPluginProcessParent::accept() } else if(APR_STATUS_IS_EAGAIN(status)) { -// llinfos << "EAGAIN" << llendl; +// LL_INFOS() << "EAGAIN" << LL_ENDL; // No incoming connections. This is not an error. status = APR_SUCCESS; } else { -// llinfos << "Error:" << llendl; +// LL_INFOS() << "Error:" << LL_ENDL; ll_apr_warn_status(status); // Some other error. @@ -836,7 +839,7 @@ void LLPluginProcessParent::receiveMessageRaw(const std::string &message) LL_DEBUGS("Plugin") << "Received: " << message << LL_ENDL; LLPluginMessage parsed; - if(parsed.parse(message) != -1) + if(LLSDParser::PARSE_FAILURE != parsed.parse(message)) { if(parsed.hasValue("blocking_request")) { @@ -959,6 +962,8 @@ void LLPluginProcessParent::receiveMessage(const LLPluginMessage &message) { // destroy the shared memory region iter->second->destroy(); + delete iter->second; + iter->second = NULL; // and remove it from our map mSharedMemoryRegions.erase(iter); |