Classes with virtual functions need virtual dtors.
This commit is contained in:
@@ -331,6 +331,7 @@ public:
|
|||||||
class SimpleKeyingInterface
|
class SimpleKeyingInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~SimpleKeyingInterface() { }
|
||||||
//! returns smallest valid key length in bytes */
|
//! returns smallest valid key length in bytes */
|
||||||
virtual unsigned int MinKeyLength() const =0;
|
virtual unsigned int MinKeyLength() const =0;
|
||||||
//! returns largest valid key length in bytes */
|
//! returns largest valid key length in bytes */
|
||||||
@@ -632,6 +633,7 @@ class WaitObjectContainer;
|
|||||||
class Waitable
|
class Waitable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~Waitable() { }
|
||||||
//! maximum number of wait objects that this object can return
|
//! maximum number of wait objects that this object can return
|
||||||
virtual unsigned int GetMaxWaitObjectCount() const =0;
|
virtual unsigned int GetMaxWaitObjectCount() const =0;
|
||||||
//! put wait objects into container
|
//! put wait objects into container
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ bool VerifyPrime(RandomNumberGenerator &rng, const Integer &p, unsigned int leve
|
|||||||
class PrimeSelector
|
class PrimeSelector
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~PrimeSelector() {}
|
||||||
const PrimeSelector *GetSelectorPointer() const {return this;}
|
const PrimeSelector *GetSelectorPointer() const {return this;}
|
||||||
virtual bool IsAcceptable(const Integer &candidate) const =0;
|
virtual bool IsAcceptable(const Integer &candidate) const =0;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -109,6 +109,8 @@ public:
|
|||||||
template <class TFI, class MEI>
|
template <class TFI, class MEI>
|
||||||
class TF_Base
|
class TF_Base
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
virtual ~TF_Base() {}
|
||||||
protected:
|
protected:
|
||||||
virtual const TrapdoorFunctionBounds & GetTrapdoorFunctionBounds() const =0;
|
virtual const TrapdoorFunctionBounds & GetTrapdoorFunctionBounds() const =0;
|
||||||
|
|
||||||
@@ -314,6 +316,7 @@ template <class KEYS>
|
|||||||
class PublicKeyCopier
|
class PublicKeyCopier
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~PublicKeyCopier() {}
|
||||||
virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0;
|
virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -322,6 +325,7 @@ template <class KEYS>
|
|||||||
class PrivateKeyCopier
|
class PrivateKeyCopier
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
virtual ~PrivateKeyCopier() {}
|
||||||
virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0;
|
virtual void CopyKeyInto(typename KEYS::PublicKey &key) const =0;
|
||||||
virtual void CopyKeyInto(typename KEYS::PrivateKey &key) const =0;
|
virtual void CopyKeyInto(typename KEYS::PrivateKey &key) const =0;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user