Skip to content

Commit

Permalink
Fixed IsolatedInitialize (Issue 108)
Browse files Browse the repository at this point in the history
  • Loading branch information
noloader committed Jan 12, 2016
1 parent f16bd03 commit 9a5e359
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
2 changes: 1 addition & 1 deletion base32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)));
}
Expand Down
14 changes: 14 additions & 0 deletions base64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
6 changes: 2 additions & 4 deletions base64.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,7 @@ class Base64Decoder : public BaseN_Decoder
//! \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();
Expand Down Expand Up @@ -123,8 +122,7 @@ class Base64URLDecoder : public BaseN_Decoder
//! \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();
Expand Down

1 comment on commit 9a5e359

@noloader
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test program used to exercise things can be found in Issue 108.

Please sign in to comment.