From 6d86902a026f6fd507883605799ecabd934196ae Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Fri, 26 Apr 2019 14:42:54 +0200
Subject: [PATCH] fs/io/TextFile: use std::unique_ptr<>

---
 src/fs/io/TextFile.cxx | 21 +++++++--------------
 src/fs/io/TextFile.hxx |  8 +++++---
 2 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/src/fs/io/TextFile.cxx b/src/fs/io/TextFile.cxx
index 55d448a8a..5bdb2b833 100644
--- a/src/fs/io/TextFile.cxx
+++ b/src/fs/io/TextFile.cxx
@@ -26,28 +26,21 @@
 #include <assert.h>
 
 TextFile::TextFile(Path path_fs)
-	:file_reader(new FileReader(path_fs)),
+	:file_reader(std::make_unique<FileReader>(path_fs)),
 #ifdef ENABLE_ZLIB
-	 gunzip_reader(new AutoGunzipReader(*file_reader)),
+	 gunzip_reader(std::make_unique<AutoGunzipReader>(*file_reader)),
 #endif
-	 buffered_reader(new BufferedReader(*
+	 buffered_reader(std::make_unique<BufferedReader>(*
 #ifdef ENABLE_ZLIB
-					    gunzip_reader
+							  gunzip_reader
 #else
-					    file_reader
+							  file_reader
 #endif
-					    ))
+							  ))
 {
 }
 
-TextFile::~TextFile()
-{
-	delete buffered_reader;
-#ifdef ENABLE_ZLIB
-	delete gunzip_reader;
-#endif
-	delete file_reader;
-}
+TextFile::~TextFile() = default;
 
 char *
 TextFile::ReadLine()
diff --git a/src/fs/io/TextFile.hxx b/src/fs/io/TextFile.hxx
index 5b37afa24..b8997a8a7 100644
--- a/src/fs/io/TextFile.hxx
+++ b/src/fs/io/TextFile.hxx
@@ -23,19 +23,21 @@
 #include "util/Compiler.h"
 #include "config.h"
 
+#include <memory>
+
 class Path;
 class FileReader;
 class AutoGunzipReader;
 class BufferedReader;
 
 class TextFile {
-	FileReader *const file_reader;
+	const std::unique_ptr<FileReader> file_reader;
 
 #ifdef ENABLE_ZLIB
-	AutoGunzipReader *const gunzip_reader;
+	const std::unique_ptr<AutoGunzipReader> gunzip_reader;
 #endif
 
-	BufferedReader *const buffered_reader;
+	const std::unique_ptr<BufferedReader> buffered_reader;
 
 public:
 	explicit TextFile(Path path_fs);