summaryrefslogtreecommitdiff
path: root/indra/llmessage
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage')
-rw-r--r--indra/llmessage/llcurl.cpp11
-rw-r--r--indra/llmessage/llcurl.h1
-rw-r--r--indra/llmessage/llmessageconfig.cpp5
-rw-r--r--indra/llmessage/message.cpp9
4 files changed, 22 insertions, 4 deletions
diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp
index 3c8ebaeba1..ffc15d45f7 100644
--- a/indra/llmessage/llcurl.cpp
+++ b/indra/llmessage/llcurl.cpp
@@ -322,6 +322,12 @@ namespace
}
return sMainMulti;
}
+
+ void freeMulti()
+ {
+ delete sMainMulti;
+ sMainMulti = NULL;
+ }
}
void
@@ -342,3 +348,8 @@ LLCurl::process()
mainMulti()->process();
}
+void LLCurl::cleanup()
+{
+ freeMulti();
+ curl_global_cleanup();
+}
diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h
index 4e45864cae..5335906b47 100644
--- a/indra/llmessage/llcurl.h
+++ b/indra/llmessage/llcurl.h
@@ -108,6 +108,7 @@ public:
static void getByteRange(const std::string& url, S32 offset, S32 length, ResponderPtr responder);
static void process();
+ static void cleanup();
};
namespace boost
diff --git a/indra/llmessage/llmessageconfig.cpp b/indra/llmessage/llmessageconfig.cpp
index a2b0bc5efa..3cc17d67df 100644
--- a/indra/llmessage/llmessageconfig.cpp
+++ b/indra/llmessage/llmessageconfig.cpp
@@ -92,9 +92,10 @@ void LLMessageConfigFile::loadServerDefaults(const LLSD& data)
void LLMessageConfigFile::loadMessages(const LLSD& data)
{
- mMessages = data["messages"];
+ LLPointer<LLSDXMLFormatter> formatter = new LLSDXMLFormatter;
std::ostringstream out;
- LLSDXMLFormatter *formatter = new LLSDXMLFormatter;
+
+ mMessages = data["messages"];
formatter->format(mMessages, out);
lldebugs << "loading ... " << out.str()
<< " LLMessageConfigFile::loadMessages loaded "
diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp
index dfc18e0b2e..a305797fd2 100644
--- a/indra/llmessage/message.cpp
+++ b/indra/llmessage/message.cpp
@@ -1324,12 +1324,17 @@ LLMessageSystem::~LLMessageSystem()
end_net();
}
- delete mMessageReader;
+ delete mTemplateMessageReader;
+ mTemplateMessageReader = NULL;
mMessageReader = NULL;
- delete mMessageBuilder;
+ delete mTemplateMessageBuilder;
+ mTemplateMessageBuilder = NULL;
mMessageBuilder = NULL;
+ delete mLLSDMessageReader;
+ mLLSDMessageReader = NULL;
+
delete mPollInfop;
mPollInfop = NULL;