Description: Fix abstract base classes with non-virtual destructors.
Origin: https://src.fedoraproject.org/rpms/qepcad-B/blob/91dd25b/f/qepcad-B-destructor.patch
Forwarded: https://github.com/chriswestbrown/qepcad/pull/2
Last-Update: 2021-06-23

--- a/extensions/rend/Rend_Sample.cc
+++ b/extensions/rend/Rend_Sample.cc
@@ -40,11 +40,6 @@
 }
 
 
-Rend_Sample_1DS::~Rend_Sample_1DS()
-{
-  
-}
-
 /*************************************************************
  **  Refines I to 2^k or less, and returns binary rational 
  **  middle of interval.
@@ -112,13 +107,6 @@
   L.W = NIL;
 }
 
-
-Rend_Sample_1DO::~Rend_Sample_1DO()
-{
-  
-}
-
-
 Word Rend_Sample_1DO::coordinate(int k)
 {
   Word e,j1,j2,J,kp = k;
@@ -178,11 +166,6 @@
 }
 
 
-Rend_Sample_2DS::~Rend_Sample_2DS()
-{
-  
-}
-
 /*************************************************************
  **  Refines I to 2^k or less, and returns binary rational 
  **  lower endpoint.
@@ -237,11 +220,6 @@
 
 }
 
-Rend_Sample_2DC::~Rend_Sample_2DC()
-{
-  
-}
-
 Word Rend_Sample_2DC::coordinate(int k)
 {
   return L.W;
@@ -265,11 +243,6 @@
   N.W = a;
 }
 
-Rend_Sample_BR::~Rend_Sample_BR()
-{
-  
-}
-
 Word Rend_Sample_BR::coordinate(int k)
 {
   return N.W;
--- a/extensions/rend/Rend_Sample.h
+++ b/extensions/rend/Rend_Sample.h
@@ -32,7 +32,7 @@
   virtual Word coordinate(int k) = 0; 
   virtual Word round(int k,int roundup)
     { return this -> coordinate(k); }
-  //  virtual ~Rend_Sample() = 0;
+  virtual ~Rend_Sample() {}
 };
 
 class Rend_Sample_1DS : public Rend_Sample
@@ -49,7 +49,6 @@
   gcmemloc A,I;
 public:
   Rend_Sample_1DS(Word C, Word P);
-  virtual ~Rend_Sample_1DS();
   virtual Word coordinate(int k);
   virtual Word round(int k, int roundup);
   Word weakcompare(Word R);
@@ -66,7 +65,6 @@
   gcmemloc L;
 public:
   Rend_Sample_1DO(Rend_Cell *dad);
-  virtual ~Rend_Sample_1DO();
   virtual Word coordinate(int k);
     
 };
@@ -86,7 +84,6 @@
   gcmemloc A,I;
 public:
   Rend_Sample_2DS(Word C);
-  virtual ~Rend_Sample_2DS();
   virtual Word coordinate(int k);
     
 };
@@ -101,7 +98,6 @@
   gcmemloc L;
 public:
   Rend_Sample_2DC(Word C,Word P);
-  virtual ~Rend_Sample_2DC();
   virtual Word coordinate(int k);
   void add_point(Word p);
   void clear_points();
@@ -116,7 +112,6 @@
   gcmemloc N;
 public:
   Rend_Sample_BR(Word a);
-  virtual ~Rend_Sample_BR();
   virtual Word coordinate(int k);    
 };
 
--- a/plot2d/plot.cc
+++ b/plot2d/plot.cc
@@ -37,6 +37,7 @@
 public:
   virtual bool read(istream &in) = 0;
   virtual void glRend(const CADColors &C) = 0;
+  virtual ~CADELT() {}
 };
 
 class SNoverSR : public CADELT
