diff options
| author | Julian Andres Klode <julian.klode@canonical.com> | 2025-02-15 09:51:55 +0100 |
|---|---|---|
| committer | Julian Andres Klode <julian.klode@canonical.com> | 2025-02-15 09:51:55 +0100 |
| commit | cb7822179bd21abd079664a0af02f8ea6559c788 (patch) | |
| tree | 90845d7840e67577251fdbb5a2e7e0b5025430be /apt-pkg | |
| parent | 8db4be21f3effe3cbeee96bace00d25ffaebb317 (diff) | |
fileutl: Convert FileFd::d to std::unique_ptr
Diffstat (limited to 'apt-pkg')
| -rw-r--r-- | apt-pkg/contrib/fileutl.cc | 30 | ||||
| -rw-r--r-- | apt-pkg/contrib/fileutl.h | 2 |
2 files changed, 14 insertions, 18 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 3626f00ec..4dd7b1ac3 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1290,13 +1290,13 @@ public: /*}}}*/ class APT_HIDDEN BufferedWriteFileFdPrivate : public FileFdPrivate { /*{{{*/ protected: - FileFdPrivate *wrapped; + std::unique_ptr<FileFdPrivate> wrapped; simple_buffer writebuffer; public: - explicit BufferedWriteFileFdPrivate(FileFdPrivate *Priv) : - FileFdPrivate(Priv->filefd), wrapped(Priv) {}; + explicit BufferedWriteFileFdPrivate(std::unique_ptr<FileFdPrivate> &&Priv) : + FileFdPrivate(Priv->filefd), wrapped(std::move(Priv)) {}; [[nodiscard]] APT::Configuration::Compressor get_compressor() const override { @@ -1429,7 +1429,6 @@ public: } virtual ~BufferedWriteFileFdPrivate() { - delete wrapped; } }; /*}}}*/ @@ -2396,20 +2395,20 @@ ssize_t InternalUnbufferedRead(void *const To, unsigned long long const Size) ov }; /*}}}*/ // FileFd Constructors /*{{{*/ -FileFd::FileFd(std::string FileName,unsigned int const Mode,unsigned long AccessMode) : iFd(-1), Flags(0), d(NULL) +FileFd::FileFd(std::string FileName,unsigned int const Mode,unsigned long AccessMode) : iFd(-1), Flags(0), d(nullptr) { Open(FileName,Mode, None, AccessMode); } -FileFd::FileFd(std::string FileName,unsigned int const Mode, CompressMode Compress, unsigned long AccessMode) : iFd(-1), Flags(0), d(NULL) +FileFd::FileFd(std::string FileName,unsigned int const Mode, CompressMode Compress, unsigned long AccessMode) : iFd(-1), Flags(0), d(nullptr) { Open(FileName,Mode, Compress, AccessMode); } -FileFd::FileFd() : iFd(-1), Flags(AutoClose), d(NULL) {} -FileFd::FileFd(int const Fd, unsigned int const Mode, CompressMode Compress) : iFd(-1), Flags(0), d(NULL) +FileFd::FileFd() : iFd(-1), Flags(AutoClose), d(nullptr) {} +FileFd::FileFd(int const Fd, unsigned int const Mode, CompressMode Compress) : iFd(-1), Flags(0), d(nullptr) { OpenDescriptor(Fd, Mode, Compress); } -FileFd::FileFd(int const Fd, bool const AutoClose) : iFd(-1), Flags(0), d(NULL) +FileFd::FileFd(int const Fd, bool const AutoClose) : iFd(-1), Flags(0), d(nullptr) { OpenDescriptor(Fd, ReadWrite, None, AutoClose); } @@ -2643,7 +2642,7 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C /* dummy so that the rest can be 'else if's */; #define APT_COMPRESS_INIT(NAME, CONSTRUCTOR) \ else if (compressor.Name == NAME) \ - d = new CONSTRUCTOR(this) + d = std::make_unique<CONSTRUCTOR>(this) #ifdef HAVE_ZLIB APT_COMPRESS_INIT("gzip", GzipFileFdPrivate); #endif @@ -2662,12 +2661,12 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C #endif #undef APT_COMPRESS_INIT else if (compressor.Name == "." || compressor.Binary.empty() == true) - d = new DirectFileFdPrivate(this); + d = std::make_unique<DirectFileFdPrivate>(this); else - d = new PipedFileFdPrivate(this); + d = std::make_unique<PipedFileFdPrivate>(this); if (Mode & BufferedWrite) - d = new BufferedWriteFileFdPrivate(d); + d = std::make_unique<BufferedWriteFileFdPrivate>(std::move(d)); d->set_openmode(Mode); d->set_compressor(compressor); @@ -2692,8 +2691,6 @@ FileFd::~FileFd() Close(); if (d != NULL) d->InternalClose(FileName); - delete d; - d = NULL; } /*}}}*/ // FileFd::Read - Read a bit of the file /*{{{*/ @@ -2911,7 +2908,7 @@ unsigned long long FileFd::Tell() return Res; } /*}}}*/ -static bool StatFileFd(char const * const msg, int const iFd, std::string const &FileName, struct stat &Buf, FileFdPrivate * const d) /*{{{*/ +static bool StatFileFd(char const * const msg, int const iFd, std::string const &FileName, struct stat &Buf, std::unique_ptr<FileFdPrivate> const &d) /*{{{*/ { bool ispipe = (d != NULL && d->get_is_pipe() == true); if (ispipe == false) @@ -2989,7 +2986,6 @@ bool FileFd::Close() if (d != NULL) { Res &= d->InternalClose(FileName); - delete d; d = NULL; } diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index edf18ec2b..53c6d85c2 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -167,7 +167,7 @@ class APT_PUBLIC FileFd virtual ~FileFd(); private: - FileFdPrivate * d; + std::unique_ptr<FileFdPrivate> d; APT_HIDDEN FileFd(const FileFd &); APT_HIDDEN FileFd & operator=(const FileFd &); APT_HIDDEN bool OpenInternDescriptor(unsigned int const Mode, APT::Configuration::Compressor const &compressor); |
