From 76e543bd7c85054ff857781707fa570f2b159360 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 5 Jul 2021 15:22:00 +0200 Subject: [PATCH] Use unique_ptr. --- src/lib/player.cc | 11 ++--------- src/lib/player.h | 4 ++-- src/lib/shuffler.h | 11 +++++++++-- src/lib/string_text_file.cc | 14 ++++++-------- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/lib/player.cc b/src/lib/player.cc index 3a098c38e..5de089ba9 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -134,12 +134,6 @@ Player::construct () } -Player::~Player () -{ - delete _shuffler; -} - - void Player::setup_pieces () { @@ -170,8 +164,7 @@ Player::setup_pieces_unlocked () auto old_pieces = _pieces; _pieces.clear (); - delete _shuffler; - _shuffler = new Shuffler(); + _shuffler.reset (new Shuffler()); _shuffler->Video.connect(bind(&Player::video, this, _1, _2)); for (auto i: playlist()->content()) { @@ -226,7 +219,7 @@ Player::setup_pieces_unlocked () if (decoder->video) { if (i->video->frame_type() == VideoFrameType::THREE_D_LEFT || i->video->frame_type() == VideoFrameType::THREE_D_RIGHT) { /* We need a Shuffler to cope with 3D L/R video data arriving out of sequence */ - decoder->video->Data.connect (bind(&Shuffler::video, _shuffler, weak_ptr(piece), _1)); + decoder->video->Data.connect (bind(&Shuffler::video, _shuffler.get(), weak_ptr(piece), _1)); } else { decoder->video->Data.connect (bind(&Player::video, this, weak_ptr(piece), _1)); } diff --git a/src/lib/player.h b/src/lib/player.h index daade1d7b..6cefbe232 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -78,7 +78,6 @@ class Player : public std::enable_shared_from_this public: Player (std::shared_ptr); Player (std::shared_ptr, std::shared_ptr playlist); - ~Player (); Player (Player const& Player) = delete; Player& operator= (Player const& Player) = delete; @@ -208,7 +207,7 @@ private: LastVideoMap _last_video; AudioMerger _audio_merger; - Shuffler* _shuffler = nullptr; + std::unique_ptr _shuffler; std::list, dcpomatic::DCPTime> > _delay; class StreamState @@ -239,4 +238,5 @@ private: boost::signals2::scoped_connection _playlist_content_change_connection; }; + #endif diff --git a/src/lib/shuffler.h b/src/lib/shuffler.h index 2b37b70a1..476f571b4 100644 --- a/src/lib/shuffler.h +++ b/src/lib/shuffler.h @@ -19,14 +19,17 @@ */ -#include "types.h" +#ifndef DCPOMATIC_SHUFFLER_H +#define DCPOMATIC_SHUFFLER_H + + #include "content_video.h" +#include "types.h" #include struct shuffler_test5; - class Piece; @@ -48,3 +51,7 @@ private: boost::optional _last; static int const _max_size; }; + + +#endif + diff --git a/src/lib/string_text_file.cc b/src/lib/string_text_file.cc index 78c119df6..8c2c56518 100644 --- a/src/lib/string_text_file.cc +++ b/src/lib/string_text_file.cc @@ -46,15 +46,15 @@ StringTextFile::StringTextFile (shared_ptr content) string ext = content->path(0).extension().string(); transform (ext.begin(), ext.end(), ext.begin(), ::tolower); - sub::Reader* reader = 0; + std::unique_ptr reader; if (ext == ".stl") { - FILE* f = fopen_boost (content->path(0), "rb"); + auto f = fopen_boost (content->path(0), "rb"); if (!f) { throw OpenFileError (content->path(0), errno, OpenFileError::READ); } try { - reader = new sub::STLBinaryReader (f); + reader.reset(new sub::STLBinaryReader(f)); } catch (...) { fclose (f); throw; @@ -100,17 +100,15 @@ StringTextFile::StringTextFile (shared_ptr content) ucnv_close (to_utf8); if (ext == ".srt") { - reader = new sub::SubripReader (utf8.get()); + reader.reset(new sub::SubripReader(utf8.get())); } else if (ext == ".ssa" || ext == ".ass") { - reader = new sub::SSAReader (utf8.get()); + reader.reset(new sub::SSAReader(utf8.get())); } } if (reader) { - _subtitles = sub::collect > (reader->subtitles ()); + _subtitles = sub::collect>(reader->subtitles()); } - - delete reader; } /** @return time of first subtitle, if there is one */ -- 2.30.2