summaryrefslogtreecommitdiff
path: root/indra/llplugin/llpluginprocessparent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llplugin/llpluginprocessparent.cpp')
-rwxr-xr-x[-rw-r--r--]indra/llplugin/llpluginprocessparent.cpp13
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);