Make static analysis happy..
authorRobin Gareus <robin@gareus.org>
Thu, 23 Nov 2017 10:29:07 +0000 (11:29 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 23 Nov 2017 10:29:07 +0000 (11:29 +0100)
If the copy c'tor of ProcessorSelection was actually used,
assigning the XMLProcessorSelection
    processors = other.processors;
would lead to duplicate free() of the XMLNode*
XMLProcessorSelection would need a dedicated copy c'tor that
duplicates allocates a new XMLNode.
see also #10 at https://www.viva64.com/en/b/0540/

Anyway, the copy c'tor and assignment is never used. This commit makes
this explicit.

gtk2_ardour/processor_selection.cc
gtk2_ardour/processor_selection.h
gtk2_ardour/route_processor_selection.cc
gtk2_ardour/route_processor_selection.h

index a9833096d2f9d7c17f0ba462816728c042b37681..47a9fe22ec4448593b122460a1d50084cc9b250c 100644 (file)
 
 #include "processor_selection.h"
 
-ProcessorSelection&
-ProcessorSelection::operator= (ProcessorSelection const & other)
-{
-       if (this != &other) {
-               processors = other.processors;
-       }
-
-       return *this;
-}
-
 void
 ProcessorSelection::clear_processors ()
 {
index fc3a133ef1ff993dd03eef3067dfdedfca616402..7de1c4735e2370a2f8fc6139aa89b6400009a6f4 100644 (file)
@@ -67,7 +67,6 @@ class ProcessorSelection : public PBD::ScopedConnectionList, public sigc::tracka
        XMLProcessorSelection processors;
        sigc::signal<void> ProcessorsChanged;
 
-       ProcessorSelection& operator= (const ProcessorSelection& other);
 
        void clear ();
        bool empty();
@@ -76,6 +75,10 @@ class ProcessorSelection : public PBD::ScopedConnectionList, public sigc::tracka
        void add (XMLNode* node);
 
        void clear_processors ();
+
+       private:
+       ProcessorSelection& operator= (const ProcessorSelection& other);
+       ProcessorSelection (ProcessorSelection const&);
 };
 
 bool operator==(const ProcessorSelection& a, const ProcessorSelection& b);
index ed182db415305a77697eed2a86c6040de9e37dcf..ac334b4b871daa978e6d375c716458524651a9e2 100644 (file)
@@ -43,16 +43,6 @@ RouteProcessorSelection::RouteProcessorSelection (SessionHandlePtr& s, AxisViewP
 {
 }
 
-RouteProcessorSelection&
-RouteProcessorSelection::operator= (const RouteProcessorSelection& other)
-{
-       if (&other != this) {
-               (*((ProcessorSelection*) this)) = (*((ProcessorSelection const *) &other));
-               axes = other.axes;
-       }
-       return *this;
-}
-
 bool
 operator== (const RouteProcessorSelection& a, const RouteProcessorSelection& b)
 {
index d92436dbc4821dd23c8077287112a8b61c55cbf0..80ab9e6adfe7f19e95242b16d4fb685635ab6b32 100644 (file)
@@ -39,8 +39,6 @@ public:
 
        RouteProcessorSelection (ARDOUR::SessionHandlePtr&, AxisViewProvider&);
 
-       RouteProcessorSelection& operator= (const RouteProcessorSelection& other);
-
        void clear ();
        bool empty();
 
@@ -58,6 +56,9 @@ private:
        AxisViewProvider& avp;
        void removed (AxisView*);
        std::list<AxisView*> add_grouped_tracks (AxisView*) const;
+
+       RouteProcessorSelection& operator= (const RouteProcessorSelection& other);
+       RouteProcessorSelection (RouteProcessorSelection const&);
 };
 
 bool operator==(const RouteProcessorSelection& a, const RouteProcessorSelection& b);