Pass unique_ptrs around by value

This commit is contained in:
Thomas Goyne 2013-09-16 06:43:17 -07:00
parent 40a0d8b2f7
commit af2028e971
20 changed files with 28 additions and 28 deletions

View File

@ -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; int filter_copy = 1;
std::string name = filter->name; std::string name = filter->name;
// Find a unique name // Find a unique name

View File

@ -87,7 +87,7 @@ typedef boost::intrusive::make_list<AssExportFilter, boost::intrusive::constant_
class AssExportFilterChain { class AssExportFilterChain {
public: public:
/// Register an export filter /// 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 /// Unregister and delete all export filters
static void Clear(); static void Clear();
/// Get a filter by name or nullptr if it doesn't exist /// Get a filter by name or nullptr if it doesn't exist

View File

@ -48,7 +48,7 @@
AssStyleStorage::~AssStyleStorage() { } AssStyleStorage::~AssStyleStorage() { }
void AssStyleStorage::clear() { style.clear(); } 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 { void AssStyleStorage::Save() const {
if (file.empty()) return; if (file.empty()) return;

View File

@ -54,7 +54,7 @@ public:
iterator end() { return style.end(); } iterator end() { return style.end(); }
const_iterator begin() const { return style.begin(); } const_iterator begin() const { return style.begin(); }
const_iterator end() const { return style.end(); } 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 *back() { return style.back().get(); }
AssStyle *operator[](size_t idx) const { return style[idx].get(); } AssStyle *operator[](size_t idx) const { return style[idx].get(); }
size_t size() const { return style.size(); } size_t size() const { return style.size(); }

View File

@ -36,7 +36,7 @@ class AudioProviderConverter : public AudioProvider {
protected: protected:
std::unique_ptr<AudioProvider> source; std::unique_ptr<AudioProvider> source;
public: public:
AudioProviderConverter(std::unique_ptr<AudioProvider>&& src) AudioProviderConverter(std::unique_ptr<AudioProvider> src)
: source(std::move(src)) : source(std::move(src))
{ {
channels = source->GetChannels(); channels = source->GetChannels();
@ -54,7 +54,7 @@ template<class Target>
class BitdepthConvertAudioProvider : public AudioProviderConverter { class BitdepthConvertAudioProvider : public AudioProviderConverter {
int src_bytes_per_sample; int src_bytes_per_sample;
public: 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) if (bytes_per_sample > 8)
throw agi::AudioProviderOpenError("Audio format converter: audio with bitdepths greater than 64 bits/sample is currently unsupported", 0); 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> template<class Source, class Target>
class FloatConvertAudioProvider : public AudioProviderConverter { class FloatConvertAudioProvider : public AudioProviderConverter {
public: 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); bytes_per_sample = sizeof(Target);
float_samples = false; float_samples = false;
} }
@ -126,7 +126,7 @@ public:
class DownmixAudioProvider : public AudioProviderConverter { class DownmixAudioProvider : public AudioProviderConverter {
int src_channels; int src_channels;
public: 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) if (bytes_per_sample != 2)
throw agi::InternalError("DownmixAudioProvider requires 16-bit input", 0); throw agi::InternalError("DownmixAudioProvider requires 16-bit input", 0);
if (channels == 1) if (channels == 1)
@ -156,7 +156,7 @@ public:
/// Requires 16-bit mono input /// Requires 16-bit mono input
class SampleDoublingAudioProvider : public AudioProviderConverter { class SampleDoublingAudioProvider : public AudioProviderConverter {
public: 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) if (source->GetBytesPerSample() != 2)
throw agi::InternalError("UpsampleAudioProvider requires 16-bit input", 0); throw agi::InternalError("UpsampleAudioProvider requires 16-bit input", 0);
if (source->GetChannels() != 1) 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 // Ensure 16-bit audio with proper endianness
if (provider->AreSamplesFloat()) { if (provider->AreSamplesFloat()) {
LOG_D("audio_provider") << "Converting float to S16"; 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)); provider = agi::util::make_unique<SampleDoublingAudioProvider>(std::move(provider));
} }
return std::move(provider); return provider;
} }

View File

@ -24,4 +24,4 @@
class AudioProvider; class AudioProvider;
/// Get an audio provider which supplies audio in a format supported by Aegisub's players /// 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);

View File

@ -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(); bytes_per_sample = src->GetBytesPerSample();
num_samples = src->GetNumSamples(); num_samples = src->GetNumSamples();
channels = src->GetChannels(); channels = src->GetChannels();

View File

@ -54,6 +54,6 @@ class HDAudioProvider : public AudioProvider {
void FillBuffer(void *buf, int64_t start, int64_t count) const; void FillBuffer(void *buf, int64_t start, int64_t count) const;
public: public:
HDAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br); HDAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
~HDAudioProvider(); ~HDAudioProvider();
}; };

View File

@ -20,7 +20,7 @@
#include "audio_provider_lock.h" #include "audio_provider_lock.h"
LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider>&& src) LockAudioProvider::LockAudioProvider(std::unique_ptr<AudioProvider> src)
: source(std::move(src)) : source(std::move(src))
{ {
channels = source->GetChannels(); channels = source->GetChannels();

View File

@ -27,5 +27,5 @@ class LockAudioProvider : public AudioProvider {
void FillBuffer(void *buf, int64_t start, int64_t count) const; void FillBuffer(void *buf, int64_t start, int64_t count) const;
public: public:
LockAudioProvider(std::unique_ptr<AudioProvider>&& source); LockAudioProvider(std::unique_ptr<AudioProvider> source);
}; };

View File

@ -46,7 +46,7 @@
#define CacheBits 22 #define CacheBits 22
#define CacheBlockSize (1 << CacheBits) #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 { try {
blockcache.resize((src->GetNumSamples() * src->GetBytesPerSample() + CacheBlockSize - 1) >> CacheBits); blockcache.resize((src->GetNumSamples() * src->GetBytesPerSample() + CacheBlockSize - 1) >> CacheBits);
} }

View File

@ -53,5 +53,5 @@ class RAMAudioProvider : public AudioProvider {
void FillBuffer(void *buf, int64_t start, int64_t count) const; void FillBuffer(void *buf, int64_t start, int64_t count) const;
public: public:
RAMAudioProvider(std::unique_ptr<AudioProvider>&& source, agi::BackgroundRunner *br); RAMAudioProvider(std::unique_ptr<AudioProvider> source, agi::BackgroundRunner *br);
}; };

View File

@ -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()) if (find(scripts.begin(), scripts.end(), script) == scripts.end())
scripts.emplace_back(std::move(script)); 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()) 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); throw agi::InternalError("Automation 4: Attempt to register the same script factory multiple times. This should never happen.", 0);

View File

@ -197,7 +197,7 @@ namespace Automation4 {
/// Deletes all scripts managed /// Deletes all scripts managed
virtual ~ScriptManager(); virtual ~ScriptManager();
/// Add a script to the manager. /// 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. /// Remove a script from the manager, and delete the Script object.
void Remove(Script *script); void Remove(Script *script);
/// Deletes all scripts managed /// Deletes all scripts managed
@ -265,7 +265,7 @@ namespace Automation4 {
const std::string& GetFilenamePattern() const { return filename_pattern; } const std::string& GetFilenamePattern() const { return filename_pattern; }
/// Register an automation engine. /// 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 /// Get the full wildcard string for all loaded engines
static std::string GetWildcardStr(); static std::string GetWildcardStr();

View File

@ -36,7 +36,7 @@ namespace cmd {
return it; return it;
} }
void reg(std::unique_ptr<Command>&& cmd) { void reg(std::unique_ptr<Command> cmd) {
cmd_map[cmd->name()] = std::move(cmd); cmd_map[cmd->name()] = std::move(cmd);
} }

View File

@ -138,7 +138,7 @@ namespace cmd {
/// Register a command. /// Register a command.
/// @param cmd Command object to register. /// @param cmd Command object to register.
void reg(std::unique_ptr<Command>&& cmd); void reg(std::unique_ptr<Command> cmd);
/// Unregister a command. /// Unregister a command.
/// @param cmd Command name to unregister. The associated command object is deleted. /// @param cmd Command name to unregister. The associated command object is deleted.

View File

@ -590,7 +590,7 @@ Advanced_Video::Advanced_Video(wxTreebook *book, Preferences *parent): OptionPag
SetSizerAndFit(sizer); 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); pending_changes[new_value->GetName()] = std::move(new_value);
if (IsEnabled()) if (IsEnabled())
applyButton->Enable(true); applyButton->Enable(true);

View File

@ -56,7 +56,7 @@ public:
/// Add an option to be set when the OK or Apply button is clicked /// 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 /// @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 /// All a function to call when the OK or Apply button is clicked
/// @param callback Function to call /// @param callback Function to call

View File

@ -407,7 +407,7 @@ void VideoDisplay::SetZoomFromBoxText(wxCommandEvent &) {
SetZoom(value / 100.); SetZoom(value / 100.);
} }
void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase>&& new_tool) { void VideoDisplay::SetTool(std::unique_ptr<VisualToolBase> new_tool) {
toolBar->ClearTools(); toolBar->ClearTools();
toolBar->Realize(); toolBar->Realize();
toolBar->Show(false); toolBar->Show(false);

View File

@ -160,7 +160,7 @@ public:
/// Get the last seen position of the mouse in script coordinates /// Get the last seen position of the mouse in script coordinates
Vector2D GetMousePosition() const; 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; bool ToolIsType(std::type_info const& type) const;