From 18798c98864d1e543897dea79c538bb1c403b4e7 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 15 Oct 2017 20:49:47 -0400 Subject: [PATCH] Corrects joystick memory leaks. --- Machines/Atari2600/Atari2600.cpp | 8 ++++---- Machines/Commodore/Vic-20/Vic20.cpp | 6 +++--- Machines/JoystickMachine.hpp | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Machines/Atari2600/Atari2600.cpp b/Machines/Atari2600/Atari2600.cpp index c68e4661a..92bc5c9e1 100644 --- a/Machines/Atari2600/Atari2600.cpp +++ b/Machines/Atari2600/Atari2600.cpp @@ -107,15 +107,15 @@ class ConcreteMachine: break; } - joysticks_.push_back(new Joystick(bus_.get(), 0, 0)); - joysticks_.push_back(new Joystick(bus_.get(), 4, 1)); + joysticks_.emplace_back(new Joystick(bus_.get(), 0, 0)); + joysticks_.emplace_back(new Joystick(bus_.get(), 4, 1)); } bool insert_media(const StaticAnalyser::Media &media) override { return false; } - std::vector &get_joysticks() override { + std::vector> &get_joysticks() override { return joysticks_; } @@ -208,7 +208,7 @@ class ConcreteMachine: } frame_records_[4]; unsigned int frame_record_pointer_; bool is_ntsc_; - std::vector joysticks_; + std::vector> joysticks_; }; } diff --git a/Machines/Commodore/Vic-20/Vic20.cpp b/Machines/Commodore/Vic-20/Vic20.cpp index a4d76525a..2f6261140 100644 --- a/Machines/Commodore/Vic-20/Vic20.cpp +++ b/Machines/Commodore/Vic-20/Vic20.cpp @@ -295,7 +295,7 @@ class ConcreteMachine: set_region(NTSC); // install a joystick - joysticks_.push_back(new Joystick(*user_port_via_port_handler_, *keyboard_via_port_handler_)); + joysticks_.emplace_back(new Joystick(*user_port_via_port_handler_, *keyboard_via_port_handler_)); } ~ConcreteMachine() { @@ -383,7 +383,7 @@ class ConcreteMachine: keyboard_via_port_handler_->clear_all_keys(); } - std::vector &get_joysticks() override { + std::vector> &get_joysticks() override { return joysticks_; } @@ -622,7 +622,7 @@ class ConcreteMachine: Region region_; Commodore::Vic20::KeyboardMapper keyboard_mapper_; - std::vector joysticks_; + std::vector> joysticks_; std::unique_ptr mos6560_; std::shared_ptr user_port_via_port_handler_; diff --git a/Machines/JoystickMachine.hpp b/Machines/JoystickMachine.hpp index bc7c4a783..3fe3e05d6 100644 --- a/Machines/JoystickMachine.hpp +++ b/Machines/JoystickMachine.hpp @@ -16,7 +16,7 @@ namespace JoystickMachine { class Machine { public: - virtual std::vector &get_joysticks() = 0; + virtual std::vector> &get_joysticks() = 0; }; }