]> source.dussan.org Git - tigervnc.git/commitdiff
Add missing virtual destructors
authorSteve Kondik <shade@chemlab.org>
Sat, 8 Jul 2017 08:49:14 +0000 (01:49 -0700)
committerSteve Kondik <shade@chemlab.org>
Sat, 8 Jul 2017 09:28:12 +0000 (02:28 -0700)
Fix warnings emitted by Clang:

/home/shade/dev/tigervnc/common/rdr/FdInStream.h:30:9: error: 'rdr::FdInStreamBlockCallback' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
  class FdInStreamBlockCallback {
        ^
In file included from /home/shade/dev/tigervnc/common/network/TcpSocket.cxx:44:
In file included from /home/shade/dev/tigervnc/common/network/TcpSocket.h:31:
/home/shade/dev/tigervnc/common/network/Socket.h:82:9: error: 'network::ConnectionFilter' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor]
  class ConnectionFilter {
        ^
..etc

common/network/Socket.h
common/rdr/FdInStream.h
common/rfb/SSecurityPlain.h
common/rfb/SSecurityVncAuth.h
common/rfb/Timer.h
common/rfb/UserPasswdGetter.h

index 53f957e6540a9bbae093d523e0d62718e81e3fa5..874a59cd2917ddda05c85094cb06c6fbd3e6b8b3 100644 (file)
@@ -82,6 +82,7 @@ namespace network {
   class ConnectionFilter {
   public:
     virtual bool verifyConnection(Socket* s) = 0;
+    virtual ~ConnectionFilter() {}
   };
 
   class SocketListener {
index 5d9598c82c250a82693749dd310114a3c48178dd..b4c87653837ee04f4245f6bb70505e0e186cc2ca 100644 (file)
@@ -30,6 +30,7 @@ namespace rdr {
   class FdInStreamBlockCallback {
   public:
     virtual void blockCallback() = 0;
+    virtual ~FdInStreamBlockCallback() {}
   };
 
   class FdInStream : public InStream {
index 2c08c24e6566e5844d7aca64f2da5f4a57439378..4bf42b74542b573e66ef3e9df012fd7bcf321010 100644 (file)
@@ -38,6 +38,8 @@ namespace rfb {
       { return validUser(username) ? validateInternal(sc, username, password) : false; }
     static StringParameter plainUsers;
 
+    virtual ~PasswordValidator() { }
+
   protected:
     virtual bool validateInternal(SConnection* sc, const char *username, const char *password)=0;
     static bool validUser(const char* username);
@@ -50,6 +52,8 @@ namespace rfb {
     virtual int getType() const { return secTypePlain; };
     virtual const char* getUserName() const { return username.buf; }
 
+    virtual ~SSecurityPlain() { }
+
   private:
     PasswordValidator* valid;
     unsigned int ulen, plen, state;
index e9f379ba7f55b83bba349f27856ca0c47d0294cb..a1d1747290a3c3c1775ef28910c07e7f5bdb43ee 100644 (file)
@@ -37,6 +37,8 @@ namespace rfb {
     // getVncAuthPasswd() fills buffer of given password and readOnlyPassword.
     // If there was no read only password in the file, readOnlyPassword buffer is null.
     virtual void getVncAuthPasswd(PlainPasswd *password, PlainPasswd *readOnlyPassword)=0;
+
+    virtual ~VncAuthPasswdGetter() { }
   };
 
   class VncAuthPasswdParameter : public VncAuthPasswdGetter, BinaryParameter {
index e295b8261e6a0659701f31dba3fcd028a6f0db00..78687d1acf0167ba0eb63c3e1333f0c0fc769e5a 100644 (file)
@@ -49,6 +49,8 @@ namespace rfb {
       //   appropriate interval.
       //   If the handler returns false then the Timer is cancelled.
       virtual bool handleTimeout(Timer* t) = 0;
+
+      virtual ~Callback() {}
     };
 
     // checkTimeouts()
index 18b0bae352649d0335a0437ea3b969fcdae9fe3e..aa72c1dd403f44662e1c242a36cb9b9cf1efb3e9 100644 (file)
@@ -25,6 +25,8 @@ namespace rfb {
     // case no user name will be retrieved.  The caller MUST delete [] the
     // result(s).
     virtual void getUserPasswd(char** user, char** password)=0;
+
+    virtual ~UserPasswdGetter() {}
   };
 }
 #endif