diff options
| author | Bryan O'Sullivan <bos@lindenlab.com> | 2009-09-29 15:33:41 -0700 | 
|---|---|---|
| committer | Bryan O'Sullivan <bos@lindenlab.com> | 2009-09-29 15:33:41 -0700 | 
| commit | 5798ac6fc8488f02d3a2f338f5b5eeedb35e7ba6 (patch) | |
| tree | 68350de4800f8c70a1e84e7034cee42eb8c97e27 /indra/llcommon | |
| parent | bc4444cd78067cbf11d3ffb210375a31a33f96bd (diff) | |
| parent | 77bf10c20c9c30a32e5e7d9d503c9cae78f59d1e (diff) | |
Merge
Diffstat (limited to 'indra/llcommon')
| -rw-r--r-- | indra/llcommon/llsdserialize_xml.cpp | 12 | ||||
| -rw-r--r-- | indra/llcommon/llstringtable.h | 10 | 
2 files changed, 16 insertions, 6 deletions
| diff --git a/indra/llcommon/llsdserialize_xml.cpp b/indra/llcommon/llsdserialize_xml.cpp index c12ca350de..7e1c2e35e0 100644 --- a/indra/llcommon/llsdserialize_xml.cpp +++ b/indra/llcommon/llsdserialize_xml.cpp @@ -37,6 +37,7 @@  #include <deque>  #include "apr_base64.h" +#include <boost/regex.hpp>  extern "C"  { @@ -777,10 +778,17 @@ void LLSDXMLParser::Impl::endElementHandler(const XML_Char* name)  		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;  			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);  			value = data;  			break; diff --git a/indra/llcommon/llstringtable.h b/indra/llcommon/llstringtable.h index 4492063275..2a0c0d8d29 100644 --- a/indra/llcommon/llstringtable.h +++ b/indra/llcommon/llstringtable.h @@ -48,10 +48,12 @@  //# define STRING_TABLE_HASH_MAP 1  #endif -#if LL_WINDOWS -#include <hash_map> -#else -#include <ext/hash_map> +#if STRING_TABLE_HASH_MAP +# if LL_WINDOWS +#  include <hash_map> +# else +#  include <ext/hash_map> +# endif  #endif  const U32 MAX_STRINGS_LENGTH = 256; | 
