Control: Convert raw pointer parameter into unique_ptr

Raw pointers shouldn't be used as boundaries in scenarios where ownership
is being taken.
This commit is contained in:
Lioncash 2017-02-10 19:31:21 -05:00
parent f6d364e37b
commit d07d9f3110
4 changed files with 9 additions and 4 deletions

View File

@ -3,11 +3,14 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "InputCommon/ControllerEmu/Control/Control.h" #include "InputCommon/ControllerEmu/Control/Control.h"
#include <utility>
#include "InputCommon/ControlReference/ControlReference.h" #include "InputCommon/ControlReference/ControlReference.h"
namespace ControllerEmu namespace ControllerEmu
{ {
Control::Control(ControlReference* ref, const std::string& name_) : control_ref(ref), name(name_) Control::Control(std::unique_ptr<ControlReference> ref, const std::string& name_)
: control_ref(std::move(ref)), name(name_)
{ {
} }

View File

@ -20,6 +20,6 @@ public:
const std::string name; const std::string name;
protected: protected:
Control(ControlReference* ref, const std::string& name); Control(std::unique_ptr<ControlReference> ref, const std::string& name);
}; };
} // namespace ControllerEmu } // namespace ControllerEmu

View File

@ -4,12 +4,13 @@
#include "InputCommon/ControllerEmu/Control/Input.h" #include "InputCommon/ControllerEmu/Control/Input.h"
#include <memory>
#include <string> #include <string>
#include "InputCommon/ControlReference/ControlReference.h" #include "InputCommon/ControlReference/ControlReference.h"
namespace ControllerEmu namespace ControllerEmu
{ {
Input::Input(const std::string& name_) : Control(new InputReference, name_) Input::Input(const std::string& name_) : Control(std::make_unique<InputReference>(), name_)
{ {
} }
} // namespace ControllerEmu } // namespace ControllerEmu

View File

@ -4,12 +4,13 @@
#include "InputCommon/ControllerEmu/Control/Output.h" #include "InputCommon/ControllerEmu/Control/Output.h"
#include <memory>
#include <string> #include <string>
#include "InputCommon/ControlReference/ControlReference.h" #include "InputCommon/ControlReference/ControlReference.h"
namespace ControllerEmu namespace ControllerEmu
{ {
Output::Output(const std::string& name_) : Control(new OutputReference, name_) Output::Output(const std::string& name_) : Control(std::make_unique<OutputReference>(), name_)
{ {
} }
} // namespace ControllerEmu } // namespace ControllerEmu