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)
{
BaseN_Decoder::Initialize(CombinedNameValuePairs(
BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
parameters,
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)));
}
void Base64Decoder::IsolatedInitialize(const NameValuePairs &parameters)
{
BaseN_Decoder::IsolatedInitialize(CombinedNameValuePairs(
parameters,
MakeParameters(Name::DecodingLookupArray(), GetDecodingLookupArray(), false)(Name::Log2Base(), 6, true)));
}
const int *Base64Decoder::GetDecodingLookupArray()
{
static volatile bool s_initialized = false;
@ -60,6 +67,13 @@ const int *Base64Decoder::GetDecodingLookupArray()
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()
{
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
//! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on
//! attached transformations. If initialization should be propagated, then use the Initialize() function.
void IsolatedInitialize(const NameValuePairs &parameters)
{CRYPTOPP_UNUSED(parameters);}
void IsolatedInitialize(const NameValuePairs &parameters);
private:
static const int * CRYPTOPP_API GetDecodingLookupArray();
@ -123,8 +122,7 @@ public:
//! \details IsolatedInitialize() is used to initialize or reinitialize an object using a variable
//! number of arbitrarily typed arguments. IsolatedInitialize() does not call Initialize() on
//! attached transformations. If initialization should be propagated, then use the Initialize() function.
void IsolatedInitialize(const NameValuePairs &parameters)
{CRYPTOPP_UNUSED(parameters);}
void IsolatedInitialize(const NameValuePairs &parameters);
private:
static const int * CRYPTOPP_API GetDecodingLookupArray();