diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-06-18 17:33:15 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-08-10 17:25:25 +0200 |
commit | 3d8232bf97ce11818fb07813a71136484ea1a44a (patch) | |
tree | c7e1e3885e952f7ab8171e1cf4b425ddccb5606f /ftparchive/writer.h | |
parent | c3392a9fccc04129816057b1184c651171034376 (diff) |
fix memory leaks reported by -fsanitize
Various small leaks here and there. Nothing particularily big, but still
good to fix. Found by the sanitizers while running our testcases.
Reported-By: gcc -fsanitize
Git-Dch: Ignore
Diffstat (limited to 'ftparchive/writer.h')
-rw-r--r-- | ftparchive/writer.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 0ba60db5e..b9c1f672a 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -64,6 +64,7 @@ class FTWScanner public: FileFd *Output; + bool OwnsOutput; unsigned int DoHashes; unsigned long DeLinkLimit; @@ -79,7 +80,7 @@ class FTWScanner bool SetExts(string const &Vals); FTWScanner(FileFd * const Output, string const &Arch = string()); - virtual ~FTWScanner() {}; + virtual ~FTWScanner(); }; class MultiCompress; @@ -88,17 +89,12 @@ class TranslationWriter { MultiCompress *Comp; std::set<string> Included; - unsigned short RefCounter; FileFd *Output; public: - void IncreaseRefCounter() { ++RefCounter; }; - unsigned short DecreaseRefCounter() { return (RefCounter == 0) ? 0 : --RefCounter; }; - unsigned short GetRefCounter() const { return RefCounter; }; bool DoPackage(string const &Pkg, string const &Desc, string const &MD5); TranslationWriter(string const &File, string const &TransCompress, mode_t const &Permissions); - TranslationWriter() : Comp(NULL), RefCounter(0) {}; ~TranslationWriter(); }; @@ -119,18 +115,18 @@ class PackagesWriter : public FTWScanner string PathPrefix; string DirStrip; struct CacheDB::Stats &Stats; - TranslationWriter *TransWriter; + TranslationWriter * const TransWriter; inline bool ReadOverride(string const &File) {return Over.ReadOverride(File);}; inline bool ReadExtraOverride(string const &File) {return Over.ReadExtraOverride(File);}; virtual bool DoPackage(string FileName); - PackagesWriter(FileFd * const Output, string const &DB, + PackagesWriter(FileFd * const Output, TranslationWriter * const TransWriter, string const &DB, string const &Overrides, string const &ExtOverrides = "", string const &Arch = ""); - virtual ~PackagesWriter() {}; + virtual ~PackagesWriter(); }; class ContentsWriter : public FTWScanner |