Fixed IsolatedInitialize (Issue 108)

pull/107/head
Jeffrey Walton 2016-01-11 23:36:46 -05:00
parent f16bd03722
commit 9a5e359bb3
3 changed files with 17 additions and 5 deletions

View File

@ -18,7 +18,7 @@ void Base32Encoder::IsolatedInitialize(const NameValuePairs &parameters)
void Base32Decoder::IsolatedInitialize(const NameValuePairs &parameters) void Base32Decoder::IsolatedInitialize(const NameValuePairs &parameters)
{ {
BaseN_Decoder::Initialize(CombinedNameValuePairs( BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
parameters, parameters,
MakeParameters(Name::DecodingLookupArray(), GetDefaultDecodingLookupArray(), false)(Name::Log2Base(), 5, true))); MakeParameters(Name::DecodingLookupArray(), GetDefaultDecodingLookupArray(), false)(Name::Log2Base(), 5, true)));
} }

View File

@ -47,6 +47,13 @@ void Base64URLEncoder::IsolatedInitialize(const NameValuePairs &parameters)
(Name::Log2Base(), 6, true))); (Name::Log2Base(), 6, true)));
} }
void Base64Decoder::IsolatedInitialize(const NameValuePairs &parameters)
{
BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
parameters,
MakeParameters(Name::DecodingLookupArray(), GetDecodingLookupArray(), false)(Name::Log2Base(), 6, true)));
}
const int *Base64Decoder::GetDecodingLookupArray() const int *Base64Decoder::GetDecodingLookupArray()
{ {
static volatile bool s_initialized = false; static volatile bool s_initialized = false;
@ -60,6 +67,13 @@ const int *Base64Decoder::GetDecodingLookupArray()
return s_array; return s_array;
} }
void Base64URLDecoder::IsolatedInitialize(const NameValuePairs &parameters)
{
BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
parameters,
MakeParameters(Name::DecodingLookupArray(), GetDecodingLookupArray(), false)(Name::Log2Base(), 6, true)));
}
const int *Base64URLDecoder::GetDecodingLookupArray() const int *Base64URLDecoder::GetDecodingLookupArray()
{ {
static volatile bool s_initialized = false; static volatile bool s_initialized = false;

View File

@ -62,8 +62,7 @@ public:
//! \details IsolatedInitialize() is used to initialize or reinitialize an object using a variable //! \details IsolatedInitialize() is used to initialize or reinitialize an object using a variable
//! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on //! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on
//! attached transformations. If initialization should be propagated, then use the Initialize() function. //! attached transformations. If initialization should be propagated, then use the Initialize() function.
void IsolatedInitialize(const NameValuePairs &parameters) void IsolatedInitialize(const NameValuePairs &parameters);
{CRYPTOPP_UNUSED(parameters);}
private: private:
static const int * CRYPTOPP_API GetDecodingLookupArray(); static const int * CRYPTOPP_API GetDecodingLookupArray();
@ -123,8 +122,7 @@ public:
//! \details IsolatedInitialize() is used to initialize or reinitialize an object using a variable //! \details IsolatedInitialize() is used to initialize or reinitialize an object using a variable
//! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on //! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on
//! attached transformations. If initialization should be propagated, then use the Initialize() function. //! attached transformations. If initialization should be propagated, then use the Initialize() function.
void IsolatedInitialize(const NameValuePairs &parameters) void IsolatedInitialize(const NameValuePairs &parameters);
{CRYPTOPP_UNUSED(parameters);}
private: private:
static const int * CRYPTOPP_API GetDecodingLookupArray(); static const int * CRYPTOPP_API GetDecodingLookupArray();