summaryrefslogtreecommitdiff
path: root/polynomi.cpp
diff options
context:
space:
mode:
authorweidai <weidai11@users.noreply.github.com>2003-07-29 01:18:33 +0000
committerweidai <weidai11@users.noreply.github.com>2003-07-29 01:18:33 +0000
commit9c5c4769a9c7a16aecc6cc7dd297bfe243dd022f (patch)
tree7a78ed3becd2c14f449d1cc66a58edd414256d94 /polynomi.cpp
parent259ee22eba4e4e6471caa088479a93fbee894e11 (diff)
downloadcryptopp-git-9c5c4769a9c7a16aecc6cc7dd297bfe243dd022f.tar.gz
fix potential threading problem with initialization of static objects
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 c049570b..be39bce4 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