Skip to content
Snippets Groups Projects
Commit 5798ac6f authored by Bryan O'Sullivan's avatar Bryan O'Sullivan
Browse files

Merge

parents bc4444cd 77bf10c2
No related branches found
No related tags found
No related merge requests found
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include <deque> #include <deque>
#include "apr_base64.h" #include "apr_base64.h"
#include <boost/regex.hpp>
extern "C" extern "C"
{ {
...@@ -777,10 +778,17 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name) ...@@ -777,10 +778,17 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name)
case ELEMENT_BINARY: case ELEMENT_BINARY:
{ {
S32 len = apr_base64_decode_len(mCurrentContent.c_str()); // Regex is expensive, but only fix for whitespace in base64,
// created by python and other non-linden systems - DEV-39358
// Fortunately we have very little binary passing now,
// so performance impact shold be negligible. + poppy 2009-09-04
boost::regex r;
r.assign("\\s");
std::string stripped = boost::regex_replace(mCurrentContent, r, "");
S32 len = apr_base64_decode_len(stripped.c_str());
std::vector<U8> data; std::vector<U8> data;
data.resize(len); data.resize(len);
len = apr_base64_decode_binary(&data[0], mCurrentContent.c_str()); len = apr_base64_decode_binary(&data[0], stripped.c_str());
data.resize(len); data.resize(len);
value = data; value = data;
break; break;
......
...@@ -48,10 +48,12 @@ ...@@ -48,10 +48,12 @@
//# define STRING_TABLE_HASH_MAP 1 //# define STRING_TABLE_HASH_MAP 1
#endif #endif
#if LL_WINDOWS #if STRING_TABLE_HASH_MAP
#include <hash_map> # if LL_WINDOWS
#else # include <hash_map>
#include <ext/hash_map> # else
# include <ext/hash_map>
# endif
#endif #endif
const U32 MAX_STRINGS_LENGTH = 256; const U32 MAX_STRINGS_LENGTH = 256;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment