From 0ba61343a44dac3b89a4d6cde9d8ae0b15b8b051 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Wed, 30 Aug 2023 07:49:31 -0700 Subject: [PATCH] std::list and unique_ptr conversions (#1122) The former is standard C++ and the latter allows getting rid of autodelete. Signed-off-by: Rosen Penev --- taglib/xm/xmfile.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/taglib/xm/xmfile.cpp b/taglib/xm/xmfile.cpp index 2da807ed..f1cfc102 100644 --- a/taglib/xm/xmfile.cpp +++ b/taglib/xm/xmfile.cpp @@ -226,17 +226,14 @@ public: class StructReader : public Reader { public: - StructReader() - { - m_readers.setAutoDelete(true); - } + StructReader() = default; /*! * Add a nested reader. This reader takes ownership. */ - StructReader &reader(Reader *reader) + StructReader &reader(std::unique_ptr reader) { - m_readers.append(reader); + m_readers.push_back(std::move(reader)); return *this; } @@ -245,7 +242,7 @@ public: */ StructReader &skip(unsigned int size) { - m_readers.append(new SkipReader(size)); + m_readers.push_back(std::make_unique(size)); return *this; } @@ -254,7 +251,7 @@ public: */ StructReader &string(String &string, unsigned int size) { - m_readers.append(new StringReader(string, size)); + m_readers.push_back(std::make_unique(string, size)); return *this; } @@ -263,7 +260,7 @@ public: */ StructReader &byte(unsigned char &byte) { - m_readers.append(new ByteReader(byte)); + m_readers.push_back(std::make_unique(byte)); return *this; } @@ -273,7 +270,7 @@ public: */ StructReader &u16(unsigned short &number, bool bigEndian) { - m_readers.append(new U16Reader(number, bigEndian)); + m_readers.push_back(std::make_unique(number, bigEndian)); return *this; } @@ -299,7 +296,7 @@ public: */ StructReader &u32(unsigned long &number, bool bigEndian) { - m_readers.append(new U32Reader(number, bigEndian)); + m_readers.push_back(std::make_unique(number, bigEndian)); return *this; } @@ -342,7 +339,7 @@ public: } private: - List m_readers; + std::list> m_readers; }; } // namespace