From af2028e97132ddcc0bedd42fdf3b827a650cb076 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Mon, 16 Sep 2013 06:43:17 -0700
Subject: [PATCH] Pass unique_ptrs around by value

---
 aegisub/src/ass_export_filter.cpp      |  2 +-
 aegisub/src/ass_export_filter.h        |  2 +-
 aegisub/src/ass_style_storage.cpp      |  2 +-
 aegisub/src/ass_style_storage.h        |  2 +-
 aegisub/src/audio_provider_convert.cpp | 14 +++++++-------
 aegisub/src/audio_provider_convert.h   |  2 +-
 aegisub/src/audio_provider_hd.cpp      |  2 +-
 aegisub/src/audio_provider_hd.h        |  2 +-
 aegisub/src/audio_provider_lock.cpp    |  2 +-
 aegisub/src/audio_provider_lock.h      |  2 +-
 aegisub/src/audio_provider_ram.cpp     |  2 +-
 aegisub/src/audio_provider_ram.h       |  2 +-
 aegisub/src/auto4_base.cpp             |  4 ++--
 aegisub/src/auto4_base.h               |  4 ++--
 aegisub/src/command/command.cpp        |  2 +-
 aegisub/src/command/command.h          |  2 +-
 aegisub/src/preferences.cpp            |  2 +-
 aegisub/src/preferences.h              |  2 +-
 aegisub/src/video_display.cpp          |  2 +-
 aegisub/src/video_display.h            |  2 +-
 20 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/aegisub/src/ass_export_filter.cpp b/aegisub/src/ass_export_filter.cpp
index 1d8a9e520..11f09c44f 100644
--- a/aegisub/src/ass_export_filter.cpp
+++ b/aegisub/src/ass_export_filter.cpp
@@ -50,7 +50,7 @@ AssExportFilter::AssExportFilter(std::string const& name, std::string const& des
 {
 }
 
-void AssExportFilterChain::Register(std::unique_ptr<AssExportFilter>&& filter) {
+void AssExportFilterChain::Register(std::unique_ptr<AssExportFilter> filter) {
 	int filter_copy = 1;
 	std::string name = filter->name;
 	// Find a unique name
diff --git a/aegisub/src/ass_export_filter.h b/aegisub/src/ass_export_filter.h
index 7aad99e15..12daa3cf1 100644
--- a/aegisub/src/ass_export_filter.h
+++ b/aegisub/src/ass_export_filter.h
@@ -87,7 +87,7 @@ typedef boost::intrusive::make_list<AssExportFilter, boost::intrusive::constant_
 class AssExportFilterChain {
 public:
 	/// Register an export filter
-	static void Register(std::unique_ptr<AssExportFilter>&& filter);
+	static void Register(std::unique_ptr<AssExportFilter> filter);
 	/// Unregister and delete all export filters
 	static void Clear();
 	/// Get a filter by name or nullptr if it doesn't exist
diff --git a/aegisub/src/ass_style_storage.cpp b/aegisub/src/ass_style_storage.cpp
index e4b5192bf..857bbca8d 100644
--- a/aegisub/src/ass_style_storage.cpp
+++ b/aegisub/src/ass_style_storage.cpp
@@ -48,7 +48,7 @@
 
 AssStyleStorage::~AssStyleStorage() { }
 void AssStyleStorage::clear() { style.clear(); }
-void AssStyleStorage::push_back( std::unique_ptr<AssStyle>&& new_style ) { style.emplace_back(std::move(new_style)); }
+void AssStyleStorage::push_back(std::unique_ptr<AssStyle> new_style) { style.emplace_back(std::move(new_style)); }
 
 void AssStyleStorage::Save() const {
 	if (file.empty()) return;
diff --git a/aegisub/src/ass_style_storage.h b/aegisub/src/ass_style_storage.h
index 1d378825a..e1099c183 100644
--- a/aegisub/src/ass_style_storage.h
+++ b/aegisub/src/ass_style_storage.h
@@ -54,7 +54,7 @@ public:
 	iterator end() { return style.end(); }
 	const_iterator begin() const { return style.begin(); }
 	const_iterator end() const { return style.end(); }
-	void push_back(std::unique_ptr<AssStyle>&& new_style);
+	void push_back(std::unique_ptr<AssStyle> new_style);
 	AssStyle *back() { return style.back().get(); }
 	AssStyle *operator[](size_t idx) const { return style[idx].get(); }
 	size_t size() const { return style.size(); }
diff --git a/aegisub/src/audio_provider_convert.cpp b/aegisub/src/audio_provider_convert.cpp
index df9912da8..05e109c67 100644
--- a/aegisub/src/audio_provider_convert.cpp
+++ b/aegisub/src/audio_provider_convert.cpp
@@ -36,7 +36,7 @@ class AudioProviderConverter : public AudioProvider {
 protected:
 	std::unique_ptr<AudioProvider> source;
 public:
-	AudioProviderConverter(std::unique_ptr<AudioProvider>&& src)
+	AudioProviderConverter(std::unique_ptr<AudioProvider> src)
 	: source(std::move(src))
 	{
 		channels = source->GetChannels();
@@ -54,7 +54,7 @@ template<class Target>
 class BitdepthConvertAudioProvider : public AudioProviderConverter {
 	int src_bytes_per_sample;
 public:
-	BitdepthConvertAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
+	BitdepthConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
 		if (bytes_per_sample > 8)
 			throw agi::AudioProviderOpenError("Audio format converter: audio with bitdepths greater than 64 bits/sample is currently unsupported", 0);
 
@@ -94,7 +94,7 @@ public:
 template<class Source, class Target>
 class FloatConvertAudioProvider : public AudioProviderConverter {
 public:
-	FloatConvertAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
+	FloatConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
 		bytes_per_sample = sizeof(Target);
 		float_samples = false;
 	}
@@ -126,7 +126,7 @@ public:
 class DownmixAudioProvider : public AudioProviderConverter {
 	int src_channels;
 public:
-	DownmixAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
+	DownmixAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
 		if (bytes_per_sample != 2)
 			throw agi::InternalError("DownmixAudioProvider requires 16-bit input", 0);
 		if (channels == 1)
@@ -156,7 +156,7 @@ public:
 /// Requires 16-bit mono input
 class SampleDoublingAudioProvider : public AudioProviderConverter {
 public:
-	SampleDoublingAudioProvider(std::unique_ptr<AudioProvider>&& src) : AudioProviderConverter(std::move(src)) {
+	SampleDoublingAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderConverter(std::move(src)) {
 		if (source->GetBytesPerSample() != 2)
 			throw agi::InternalError("UpsampleAudioProvider requires 16-bit input", 0);
 		if (source->GetChannels() != 1)
@@ -192,7 +192,7 @@ public:
 	}
 };
 
-std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider>&& provider) {
+std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider> provider) {
 	// Ensure 16-bit audio with proper endianness
 	if (provider->AreSamplesFloat()) {
 		LOG_D("audio_provider") << "Converting float to S16";
@@ -218,5 +218,5 @@ std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioP
 		provider = agi::util::make_unique<SampleDoublingAudioProvider>(std::move(provider));
 	}
 
-	return std::move(provider);
+	return provider;
 }
diff --git a/aegisub/src/audio_provider_convert.h b/aegisub/src/audio_provider_convert.h
index e989bf011..a66dc6f5a 100644
--- a/aegisub/src/audio_provider_convert.h
+++ b/aegisub/src/audio_provider_convert.h
@@ -24,4 +24,4 @@
 class AudioProvider;
 
 /// Get an audio provider which supplies audio in a format supported by Aegisub's players
-std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider>&& source_provider);
+std::unique_ptr<AudioProvider> CreateConvertAudioProvider(std::unique_ptr<AudioProvider> source_provider);
diff --git a/aegisub/src/audio_provider_hd.cpp b/aegisub/src/audio_provider_hd.cpp
index 59face1d1..2b0b8967d 100644
--- a/aegisub/src/audio_provider_hd.cpp
+++ b/aegisub/src/audio_provider_hd.cpp
@@ -89,7 +89,7 @@ public:
 
 }
 
-HDAudioProvider::HDAudioProvider(std::unique_ptr<AudioProvider>&& src, agi::BackgroundRunner *br) {
+HDAudioProvider::HDAudioProvider(std::unique_ptr<AudioProvider> src, agi::BackgroundRunner *br) {
 	bytes_per_sample = src->GetBytesPerSample();
 	num_samples      = src->GetNumSamples();
 	channels         = src->GetChannels();
diff --git a/aegisub/src/audio_provider_hd.h b/aegisub/src/audio_provider_hd.h
index def927119..c59ed739b 100644
--- a/aegisub/src/audio_provider_hd.h
+++ b/aegisub/src/audio_provider_hd.h
@@ -54,6 +54,6 @@ class HDAudioProvider : public AudioProvider {
 	void FillBuffer(void *buf, int64_t start, int64_t count) const;
 
 public:
-	HDAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br);
+	HDAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
 	~HDAudioProvider();
 };
diff --git a/aegisub/src/audio_provider_lock.cpp b/aegisub/src/audio_provider_lock.cpp
index 8b9a00652..5ca6b8b93 100644
--- a/aegisub/src/audio_provider_lock.cpp
+++ b/aegisub/src/audio_provider_lock.cpp
@@ -20,7 +20,7 @@
 
 #include "audio_provider_lock.h"
 
-LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider>&& src)
+LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider> src)
 : source(std::move(src))
 {
 	channels = source->GetChannels();
diff --git a/aegisub/src/audio_provider_lock.h b/aegisub/src/audio_provider_lock.h
index a591671e5..c6653b775 100644
--- a/aegisub/src/audio_provider_lock.h
+++ b/aegisub/src/audio_provider_lock.h
@@ -27,5 +27,5 @@ class LockAudioProvider : public AudioProvider {
 
 	void FillBuffer(void *buf, int64_t start, int64_t count) const;
 public:
-	LockAudioProvider(std::unique_ptr<AudioProvider>&& source);
+	LockAudioProvider(std::unique_ptr<AudioProvider> source);
 };
diff --git a/aegisub/src/audio_provider_ram.cpp b/aegisub/src/audio_provider_ram.cpp
index 888b20096..9fd8dcffb 100644
--- a/aegisub/src/audio_provider_ram.cpp
+++ b/aegisub/src/audio_provider_ram.cpp
@@ -46,7 +46,7 @@
 #define CacheBits 22
 #define CacheBlockSize (1 << CacheBits)
 
-RAMAudioProvider::RAMAudioProvider(std::unique_ptr<AudioProvider>&& src, agi::BackgroundRunner *br) {
+RAMAudioProvider::RAMAudioProvider(std::unique_ptr<AudioProvider> src, agi::BackgroundRunner *br) {
 	try {
 		blockcache.resize((src->GetNumSamples() * src->GetBytesPerSample() + CacheBlockSize - 1) >> CacheBits);
 	}
diff --git a/aegisub/src/audio_provider_ram.h b/aegisub/src/audio_provider_ram.h
index ad0e232f9..e307ce7e8 100644
--- a/aegisub/src/audio_provider_ram.h
+++ b/aegisub/src/audio_provider_ram.h
@@ -53,5 +53,5 @@ class RAMAudioProvider : public AudioProvider {
 	void FillBuffer(void *buf, int64_t start, int64_t count) const;
 
 public:
-	RAMAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br);
+	RAMAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
 };
diff --git a/aegisub/src/auto4_base.cpp b/aegisub/src/auto4_base.cpp
index d9a672ad2..1af73472d 100644
--- a/aegisub/src/auto4_base.cpp
+++ b/aegisub/src/auto4_base.cpp
@@ -291,7 +291,7 @@ namespace Automation4 {
 	{
 	}
 
-	void ScriptManager::Add(std::unique_ptr<Script>&& script)
+	void ScriptManager::Add(std::unique_ptr<Script> script)
 	{
 		if (find(scripts.begin(), scripts.end(), script) == scripts.end())
 			scripts.emplace_back(std::move(script));
@@ -460,7 +460,7 @@ namespace Automation4 {
 	{
 	}
 
-	void ScriptFactory::Register(std::unique_ptr<ScriptFactory>&& factory)
+	void ScriptFactory::Register(std::unique_ptr<ScriptFactory> factory)
 	{
 		if (find(Factories().begin(), Factories().end(), factory) != Factories().end())
 			throw agi::InternalError("Automation 4: Attempt to register the same script factory multiple times. This should never happen.", 0);
diff --git a/aegisub/src/auto4_base.h b/aegisub/src/auto4_base.h
index e1389212b..731c6a701 100644
--- a/aegisub/src/auto4_base.h
+++ b/aegisub/src/auto4_base.h
@@ -197,7 +197,7 @@ namespace Automation4 {
 		/// Deletes all scripts managed
 		virtual ~ScriptManager();
 		/// Add a script to the manager.
-		void Add(std::unique_ptr<Script>&& script);
+		void Add(std::unique_ptr<Script> script);
 		/// Remove a script from the manager, and delete the Script object.
 		void Remove(Script *script);
 		/// Deletes all scripts managed
@@ -265,7 +265,7 @@ namespace Automation4 {
 		const std::string& GetFilenamePattern() const { return filename_pattern; }
 
 		/// Register an automation engine.
-		static void Register(std::unique_ptr<ScriptFactory>&& factory);
+		static void Register(std::unique_ptr<ScriptFactory> factory);
 
 		/// Get the full wildcard string for all loaded engines
 		static std::string GetWildcardStr();
diff --git a/aegisub/src/command/command.cpp b/aegisub/src/command/command.cpp
index 01810eb75..ea575f5d9 100644
--- a/aegisub/src/command/command.cpp
+++ b/aegisub/src/command/command.cpp
@@ -36,7 +36,7 @@ namespace cmd {
 		return it;
 	}
 
-	void reg(std::unique_ptr<Command>&& cmd) {
+	void reg(std::unique_ptr<Command> cmd) {
 		cmd_map[cmd->name()] = std::move(cmd);
 	}
 
diff --git a/aegisub/src/command/command.h b/aegisub/src/command/command.h
index 5edb480c7..a67cade0c 100644
--- a/aegisub/src/command/command.h
+++ b/aegisub/src/command/command.h
@@ -138,7 +138,7 @@ namespace cmd {
 
 	/// Register a command.
 	/// @param cmd Command object to register.
-	void reg(std::unique_ptr<Command>&& cmd);
+	void reg(std::unique_ptr<Command> cmd);
 
 	/// Unregister a command.
 	/// @param cmd Command name to unregister. The associated command object is deleted.
diff --git a/aegisub/src/preferences.cpp b/aegisub/src/preferences.cpp
index 988562452..d20a76c79 100644
--- a/aegisub/src/preferences.cpp
+++ b/aegisub/src/preferences.cpp
@@ -590,7 +590,7 @@ Advanced_Video::Advanced_Video(wxTreebook *book, Preferences *parent): OptionPag
 	SetSizerAndFit(sizer);
 }
 
-void Preferences::SetOption(std::unique_ptr<agi::OptionValue>&& new_value) {
+void Preferences::SetOption(std::unique_ptr<agi::OptionValue> new_value) {
 	pending_changes[new_value->GetName()] = std::move(new_value);
 	if (IsEnabled())
 		applyButton->Enable(true);
diff --git a/aegisub/src/preferences.h b/aegisub/src/preferences.h
index effa82e58..0bf1754ed 100644
--- a/aegisub/src/preferences.h
+++ b/aegisub/src/preferences.h
@@ -56,7 +56,7 @@ public:
 
 	/// Add an option to be set when the OK or Apply button is clicked
 	/// @param new_value Clone of the option with the new value to copy over
-	void SetOption(std::unique_ptr<agi::OptionValue>&& new_value);
+	void SetOption(std::unique_ptr<agi::OptionValue> new_value);
 
 	/// All a function to call when the OK or Apply button is clicked
 	/// @param callback Function to call
diff --git a/aegisub/src/video_display.cpp b/aegisub/src/video_display.cpp
index 6b17f3638..40bbd4e98 100644
--- a/aegisub/src/video_display.cpp
+++ b/aegisub/src/video_display.cpp
@@ -407,7 +407,7 @@ void VideoDisplay::SetZoomFromBoxText(wxCommandEvent &) {
 		SetZoom(value / 100.);
 }
 
-void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase>&& new_tool) {
+void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase> new_tool) {
 	toolBar->ClearTools();
 	toolBar->Realize();
 	toolBar->Show(false);
diff --git a/aegisub/src/video_display.h b/aegisub/src/video_display.h
index a7f9ae03c..96c9636d3 100644
--- a/aegisub/src/video_display.h
+++ b/aegisub/src/video_display.h
@@ -160,7 +160,7 @@ public:
 	/// Get the last seen position of the mouse in script coordinates
 	Vector2D GetMousePosition() const;
 
-	void SetTool(std::unique_ptr<VisualToolBase>&& new_tool);
+	void SetTool(std::unique_ptr<VisualToolBase> new_tool);
 
 	bool ToolIsType(std::type_info const& type) const;
 
-- 
GitLab