improve Integer initialization
parent
e5f8b8851a
commit
1012e664ef
15
integer.cpp
15
integer.cpp
|
|
@ -50,8 +50,6 @@ bool AssignIntToInteger(const std::type_info &valueType, void *pInteger, const v
|
|||
return true;
|
||||
}
|
||||
|
||||
static const char s_RunAtStartup = (g_pAssignIntToInteger = AssignIntToInteger, 0);
|
||||
|
||||
#ifdef SSE2_INTRINSICS_AVAILABLE
|
||||
template <class T>
|
||||
CPP_TYPENAME AllocatorBase<T>::pointer AlignedAllocator<T>::allocate(size_type n, const void *)
|
||||
|
|
@ -1047,8 +1045,6 @@ static void SetPentiumFunctionPointers()
|
|||
#endif
|
||||
}
|
||||
|
||||
static const char s_RunAtStartupSetPentiumFunctionPointers = (SetPentiumFunctionPointers(), 0);
|
||||
|
||||
void DisableSSE2()
|
||||
{
|
||||
s_sse2Enabled = false;
|
||||
|
|
@ -2726,6 +2722,17 @@ void MultiplyByPower2Mod(word *R, const word *A, size_t k, const word *M, size_t
|
|||
|
||||
// ******************************************************************
|
||||
|
||||
InitializeInteger::InitializeInteger()
|
||||
{
|
||||
if (!g_pAssignIntToInteger)
|
||||
{
|
||||
#ifdef CRYPTOPP_X86ASM_AVAILABLE
|
||||
SetPentiumFunctionPointers();
|
||||
#endif
|
||||
g_pAssignIntToInteger = AssignIntToInteger;
|
||||
}
|
||||
}
|
||||
|
||||
static const unsigned int RoundupSizeTable[] = {2, 2, 2, 4, 4, 8, 8, 8, 8};
|
||||
|
||||
static inline size_t RoundupSize(size_t n)
|
||||
|
|
|
|||
|
|
@ -67,12 +67,17 @@ NAMESPACE_BEGIN(CryptoPP)
|
|||
|
||||
void CRYPTOPP_DLL CRYPTOPP_API DisableSSE2();
|
||||
|
||||
struct InitializeInteger // used to initialize static variables
|
||||
{
|
||||
InitializeInteger();
|
||||
};
|
||||
|
||||
//! multiple precision integer and basic arithmetics
|
||||
/*! This class can represent positive and negative integers
|
||||
with absolute value less than (256**sizeof(word)) ** (256**sizeof(int)).
|
||||
\nosubgrouping
|
||||
*/
|
||||
class CRYPTOPP_DLL Integer : public ASN1Object
|
||||
class CRYPTOPP_DLL Integer : private InitializeInteger, public ASN1Object
|
||||
{
|
||||
public:
|
||||
//! \name ENUMS, EXCEPTIONS, and TYPEDEFS
|
||||
|
|
|
|||
Loading…
Reference in New Issue