summaryrefslogtreecommitdiff
path: root/polynomi.cpp
diff options
context:
space:
mode:
authorweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2003-07-29 01:18:33 +0000
committerweidai <weidai@57ff6487-cd31-0410-9ec3-f628ee90f5f0>2003-07-29 01:18:33 +0000
commit483c74aaab7c20d82a48621f1dd8b300292d3404 (patch)
tree7a78ed3becd2c14f449d1cc66a58edd414256d94 /polynomi.cpp
parenta01d216aab60849e4581efd41820f18562085687 (diff)
downloadcryptopp-483c74aaab7c20d82a48621f1dd8b300292d3404.tar.gz
fix potential threading problem with initialization of static objects
git-svn-id: svn://svn.code.sf.net/p/cryptopp/code/trunk/c5@118 57ff6487-cd31-0410-9ec3-f628ee90f5f0
Diffstat (limited to 'polynomi.cpp')
-rw-r--r--polynomi.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/polynomi.cpp b/polynomi.cpp
index c049570..be39bce 100644
--- a/polynomi.cpp
+++ b/polynomi.cpp
@@ -565,15 +565,13 @@ Element BulkPolynomialInterpolateAt(const Ring &ring, const Element y[], const E
template <class T, int instance>
const PolynomialOverFixedRing<T, instance> &PolynomialOverFixedRing<T, instance>::Zero()
{
- static const PolynomialOverFixedRing<T, instance> zero;
- return zero;
+ return Singleton<ThisType>().Ref();
}
template <class T, int instance>
const PolynomialOverFixedRing<T, instance> &PolynomialOverFixedRing<T, instance>::One()
{
- static const PolynomialOverFixedRing<T, instance> one = fixedRing.MultiplicativeIdentity();
- return one;
+ return Singleton<ThisType, NewOnePolynomial>().Ref();
}
NAMESPACE_END