From 862bafea48af2ceaf96345db237b461307a021f6 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 13 Oct 2014 08:05:57 +0200 Subject: do not inline virtual destructors with d-pointers Reimplementing an inline method is opening a can of worms we don't want to open if we ever want to us a d-pointer in those classes, so we do the only thing which can save us from hell: move the destructors into the cc sources and we are good. Technically not an ABI break as the methods inline or not do the same (nothing), so a program compiled against the old version still works with the new version (beside that this version is still in experimental, so nothing really has been build against this library anyway). Git-Dch: Ignore --- apt-pkg/deb/debindexfile.cc | 14 +++++++------- apt-pkg/deb/debindexfile.h | 12 ++++++------ apt-pkg/deb/deblistparser.cc | 3 +-- apt-pkg/deb/deblistparser.h | 2 +- apt-pkg/deb/debrecords.cc | 2 ++ apt-pkg/deb/debrecords.h | 2 +- 6 files changed, 18 insertions(+), 17 deletions(-) (limited to 'apt-pkg/deb') diff --git a/apt-pkg/deb/debindexfile.cc b/apt-pkg/deb/debindexfile.cc index 9897df53d..cc1d94d81 100644 --- a/apt-pkg/deb/debindexfile.cc +++ b/apt-pkg/deb/debindexfile.cc @@ -806,8 +806,6 @@ unsigned long debDscFileIndex::Size() const } // DscFileIndex::CreateSrcParser - Get a parser for the .dsc file /*{{{*/ -// --------------------------------------------------------------------- -/* */ pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const { if (!FileExists(DscFile)) @@ -816,11 +814,6 @@ pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const return new debDscRecordParser(DscFile,this); } /*}}}*/ - - - - -// --------------------------------------------------------------------- // Index File types for Debian /*{{{*/ class debIFTypeSrc : public pkgIndexFile::Type { @@ -919,3 +912,10 @@ const pkgIndexFile::Type *debDebianSourceDirIndex::GetType() const return &_apt_DebianSourceDir; } /*}}}*/ + +debStatusIndex::~debStatusIndex() {} +debPackagesIndex::~debPackagesIndex() {} +debTranslationsIndex::~debTranslationsIndex() {} +debSourcesIndex::~debSourcesIndex() {} + +debDebPkgFileIndex::~debDebPkgFileIndex() {} diff --git a/apt-pkg/deb/debindexfile.h b/apt-pkg/deb/debindexfile.h index 2e3ff5451..e5a1a7873 100644 --- a/apt-pkg/deb/debindexfile.h +++ b/apt-pkg/deb/debindexfile.h @@ -52,7 +52,7 @@ class debStatusIndex : public pkgIndexFile virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; debStatusIndex(std::string File); - virtual ~debStatusIndex() {}; + virtual ~debStatusIndex(); }; class debPackagesIndex : public pkgIndexFile @@ -89,7 +89,7 @@ class debPackagesIndex : public pkgIndexFile debPackagesIndex(std::string const &URI, std::string const &Dist, std::string const &Section, bool const &Trusted, std::string const &Arch = "native"); - virtual ~debPackagesIndex() {}; + virtual ~debPackagesIndex(); }; class debTranslationsIndex : public pkgIndexFile @@ -124,7 +124,7 @@ class debTranslationsIndex : public pkgIndexFile virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const; debTranslationsIndex(std::string URI,std::string Dist,std::string Section, char const * const Language); - virtual ~debTranslationsIndex() {}; + virtual ~debTranslationsIndex(); }; class debSourcesIndex : public pkgIndexFile @@ -161,7 +161,7 @@ class debSourcesIndex : public pkgIndexFile virtual unsigned long Size() const; debSourcesIndex(std::string URI,std::string Dist,std::string Section,bool Trusted); - virtual ~debSourcesIndex() {}; + virtual ~debSourcesIndex(); }; class debDebPkgFileIndex : public pkgIndexFile @@ -191,8 +191,8 @@ class debDebPkgFileIndex : public pkgIndexFile virtual std::string ArchiveURI(std::string /*File*/) const; debDebPkgFileIndex(std::string DebFile); - virtual ~debDebPkgFileIndex() {}; -}; + virtual ~debDebPkgFileIndex(); +}; class debDscFileIndex : public pkgIndexFile { diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 63414c944..502bd1a51 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -1015,5 +1015,4 @@ bool debDebFileParser::UsePackage(pkgCache::PkgIterator &Pkg, return res; } - - +debListParser::~debListParser() {} diff --git a/apt-pkg/deb/deblistparser.h b/apt-pkg/deb/deblistparser.h index b55e57d41..f20f7f33e 100644 --- a/apt-pkg/deb/deblistparser.h +++ b/apt-pkg/deb/deblistparser.h @@ -100,7 +100,7 @@ class debListParser : public pkgCacheGenerator::ListParser static const char *ConvertRelation(const char *I,unsigned int &Op); debListParser(FileFd *File, std::string const &Arch = ""); - virtual ~debListParser() {}; + virtual ~debListParser(); }; class debDebFileParser : public debListParser diff --git a/apt-pkg/deb/debrecords.cc b/apt-pkg/deb/debrecords.cc index d2c04d8b2..d08bb3c7e 100644 --- a/apt-pkg/deb/debrecords.cc +++ b/apt-pkg/deb/debrecords.cc @@ -207,3 +207,5 @@ void debRecordParser::GetRec(const char *&Start,const char *&Stop) Section.GetSection(Start,Stop); } /*}}}*/ + +debRecordParser::~debRecordParser() {}; diff --git a/apt-pkg/deb/debrecords.h b/apt-pkg/deb/debrecords.h index 2bd3f3c8f..6b5f94334 100644 --- a/apt-pkg/deb/debrecords.h +++ b/apt-pkg/deb/debrecords.h @@ -60,7 +60,7 @@ class debRecordParser : public pkgRecords::Parser virtual void GetRec(const char *&Start,const char *&Stop); debRecordParser(std::string FileName,pkgCache &Cache); - virtual ~debRecordParser() {}; + virtual ~debRecordParser(); }; // custom record parser that reads deb files directly -- cgit v1.2.3