summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-12-01 11:52:33 +0100
committerCarl Hetherington <cth@carlh.net>2022-12-01 11:52:45 +0100
commitbf471e4e6d2502bb3b4e2eb4b1309d87e1003070 (patch)
treef0daba5ca3acf9d885cda96284805847895bc577
parent0c5f0e48080a28d3cfa9f8e2f4948bbc57bc0307 (diff)
Add and use SPL::swap().
-rw-r--r--src/lib/spl.h4
-rw-r--r--src/tools/dcpomatic_playlist.cc8
2 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/spl.h b/src/lib/spl.h
index 49eb93df2..d7c746d1e 100644
--- a/src/lib/spl.h
+++ b/src/lib/spl.h
@@ -26,6 +26,8 @@
#include "spl_entry.h"
#include <dcp/util.h>
#include <boost/signals2.hpp>
+#include <algorithm>
+
class ContentStore;
@@ -63,6 +65,8 @@ public:
SPLEntry const & operator[] (std::size_t index) const {
return _spl[index];
+ void swap(size_t a, size_t b) {
+ std::iter_swap(_spl.begin() + a, _spl.begin() + b);
}
void read (boost::filesystem::path path, ContentStore* store);
diff --git a/src/tools/dcpomatic_playlist.cc b/src/tools/dcpomatic_playlist.cc
index 9eada8b38..5a8ee9126 100644
--- a/src/tools/dcpomatic_playlist.cc
+++ b/src/tools/dcpomatic_playlist.cc
@@ -402,9 +402,7 @@ private:
DCPOMATIC_ASSERT (_playlist);
- auto tmp = (*_playlist)[s];
- (*_playlist)[s] = (*_playlist)[s-1];
- (*_playlist)[s-1] = tmp;
+ _playlist->swap(s, s - 1);
set_item (s - 1, (*_playlist)[s-1]);
set_item (s, (*_playlist)[s]);
@@ -419,9 +417,7 @@ private:
DCPOMATIC_ASSERT (_playlist);
- auto tmp = (*_playlist)[s];
- (*_playlist)[s] = (*_playlist)[s+1];
- (*_playlist)[s+1] = tmp;
+ _playlist->swap(s, s + 1);
set_item (s + 1, (*_playlist)[s+1]);
set_item (s, (*_playlist)[s]);