]> git.saurik.com Git - apt.git/commitdiff
do not inline virtual destructors with d-pointers
authorDavid Kalnischkies <david@kalnischkies.de>
Mon, 13 Oct 2014 06:05:57 +0000 (08:05 +0200)
committerMichael Vogt <mvo@ubuntu.com>
Mon, 13 Oct 2014 09:29:39 +0000 (11:29 +0200)
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

18 files changed:
apt-pkg/acquire-method.cc
apt-pkg/acquire-method.h
apt-pkg/acquire.cc
apt-pkg/acquire.h
apt-pkg/clean.cc
apt-pkg/clean.h
apt-pkg/deb/debindexfile.cc
apt-pkg/deb/debindexfile.h
apt-pkg/deb/deblistparser.cc
apt-pkg/deb/deblistparser.h
apt-pkg/deb/debrecords.cc
apt-pkg/deb/debrecords.h
apt-pkg/indexcopy.cc
apt-pkg/indexcopy.h
apt-pkg/indexrecords.cc
apt-pkg/indexrecords.h
apt-pkg/tagfile.cc
apt-pkg/tagfile.h

index cfa93e95c01c474534a6f02515d7300f907563a7..c29ef469e18eb16d9e7d1c68187918819acaf6b2 100644 (file)
@@ -477,3 +477,5 @@ void pkgAcqMethod::Dequeue() {                                              /*{{{*/
    delete Tmp;
 }
                                                                        /*}}}*/
    delete Tmp;
 }
                                                                        /*}}}*/
+
+pkgAcqMethod::~pkgAcqMethod() {}
index 675c4f8448231d22f321e18b753a15e91332ddbe..48bd956723e0d651c46468ef28c0697082e16e0b 100644 (file)
@@ -108,7 +108,7 @@ class pkgAcqMethod
    inline void SetIP(std::string aIP) {IP = aIP;};
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    inline void SetIP(std::string aIP) {IP = aIP;};
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
-   virtual ~pkgAcqMethod() {};
+   virtual ~pkgAcqMethod();
    void DropPrivsOrDie();
    private:
    APT_HIDDEN void Dequeue();
    void DropPrivsOrDie();
    private:
    APT_HIDDEN void Dequeue();
index 9dee1b3cffc50cbde5ebeb1244d494d13b5f78d6..34c7f06de5d2fc9c06f8f9a913a6b32cd8ddfe7f 100644 (file)
@@ -1016,3 +1016,7 @@ void pkgAcquireStatus::Fetched(unsigned long long Size,unsigned long long Resume
    FetchedBytes += Size - Resume;
 }
                                                                        /*}}}*/
    FetchedBytes += Size - Resume;
 }
                                                                        /*}}}*/
+
+pkgAcquire::UriIterator::~UriIterator() {}
+pkgAcquire::MethodConfig::~MethodConfig() {}
+pkgAcquireStatus::~pkgAcquireStatus() {}
index f9eeb1641af318f9c36a7783ea849ec01d5d8b49..a1a192d5f7e6eb1b792f914d62fa3c3b0ca6e39f 100644 (file)
@@ -603,7 +603,7 @@ class pkgAcquire::UriIterator
         CurQ = CurQ->Next;
       }
    }   
         CurQ = CurQ->Next;
       }
    }   
-   virtual ~UriIterator() {};
+   virtual ~UriIterator();
 };
                                                                        /*}}}*/
 /** \brief Information about the properties of a single acquire method.        {{{*/
 };
                                                                        /*}}}*/
 /** \brief Information about the properties of a single acquire method.        {{{*/
@@ -661,8 +661,7 @@ struct pkgAcquire::MethodConfig
     */
    MethodConfig();
 
     */
    MethodConfig();
 
-   /* \brief Destructor, empty currently */
-   virtual ~MethodConfig() {};
+   virtual ~MethodConfig();
 };
                                                                        /*}}}*/
 /** \brief A monitor object for downloads controlled by the pkgAcquire class.  {{{
 };
                                                                        /*}}}*/
 /** \brief A monitor object for downloads controlled by the pkgAcquire class.  {{{
@@ -808,7 +807,7 @@ class pkgAcquireStatus
    
    /** \brief Initialize all counters to 0 and the time to the current time. */
    pkgAcquireStatus();
    
    /** \brief Initialize all counters to 0 and the time to the current time. */
    pkgAcquireStatus();
-   virtual ~pkgAcquireStatus() {};
+   virtual ~pkgAcquireStatus();
 };
                                                                        /*}}}*/
 /** @} */
 };
                                                                        /*}}}*/
 /** @} */
index 37128e9aa2c1de80782ad792e64d5630ebad226b..606f4ec8c049c9fc0c96ebab0565f5bed6b3a01c 100644 (file)
@@ -131,3 +131,5 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
+
+pkgArchiveCleaner::~pkgArchiveCleaner() {}
index 930d54a7ff3021e4464b7982d201278bed6fbe7b..466cb67a92d0d143f71b83c79912618db93b3a59 100644 (file)
@@ -24,13 +24,13 @@ class pkgArchiveCleaner
    void *d;
 
    protected:
    void *d;
 
    protected:
-   
+
    virtual void Erase(const char * /*File*/,std::string /*Pkg*/,std::string /*Ver*/,struct stat & /*St*/) {};
 
    virtual void Erase(const char * /*File*/,std::string /*Pkg*/,std::string /*Ver*/,struct stat & /*St*/) {};
 
-   public:   
-   
+   public:
+
    bool Go(std::string Dir,pkgCache &Cache);
    bool Go(std::string Dir,pkgCache &Cache);
-   virtual ~pkgArchiveCleaner() {};
+   virtual ~pkgArchiveCleaner();
 };
 
 #endif
 };
 
 #endif
index 9897df53ddf1d85d5b21d238251b48ce52d811bd..cc1d94d81cbcf9349735d2356b8ace4d681a73c8 100644 (file)
@@ -806,8 +806,6 @@ unsigned long debDscFileIndex::Size() const
 }
 
 // DscFileIndex::CreateSrcParser - Get a parser for the .dsc file      /*{{{*/
 }
 
 // DscFileIndex::CreateSrcParser - Get a parser for the .dsc file      /*{{{*/
-// ---------------------------------------------------------------------
-/* */
 pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const
 {
    if (!FileExists(DscFile))
 pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const
 {
    if (!FileExists(DscFile))
@@ -816,11 +814,6 @@ pkgSrcRecords::Parser *debDscFileIndex::CreateSrcParser() const
    return new debDscRecordParser(DscFile,this);
 }
                                                                        /*}}}*/
    return new debDscRecordParser(DscFile,this);
 }
                                                                        /*}}}*/
-
-
-
-
-// ---------------------------------------------------------------------
 // Index File types for Debian                                         /*{{{*/
 class debIFTypeSrc : public pkgIndexFile::Type
 {
 // Index File types for Debian                                         /*{{{*/
 class debIFTypeSrc : public pkgIndexFile::Type
 {
@@ -919,3 +912,10 @@ const pkgIndexFile::Type *debDebianSourceDirIndex::GetType() const
    return &_apt_DebianSourceDir;
 }
                                                                        /*}}}*/
    return &_apt_DebianSourceDir;
 }
                                                                        /*}}}*/
+
+debStatusIndex::~debStatusIndex() {}
+debPackagesIndex::~debPackagesIndex() {}
+debTranslationsIndex::~debTranslationsIndex() {}
+debSourcesIndex::~debSourcesIndex() {}
+
+debDebPkgFileIndex::~debDebPkgFileIndex() {}
index 2e3ff54512aa588af5339536ad63c7ffb7fecad8..e5a1a7873415d449b45be71af3cfb533f78f295c 100644 (file)
@@ -52,7 +52,7 @@ class debStatusIndex : public pkgIndexFile
    virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
 
    debStatusIndex(std::string File);
    virtual pkgCache::PkgFileIterator FindInCache(pkgCache &Cache) const;
 
    debStatusIndex(std::string File);
-   virtual ~debStatusIndex() {};
+   virtual ~debStatusIndex();
 };
     
 class debPackagesIndex : public pkgIndexFile
 };
     
 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");
 
    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
 };
 
 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 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
 };
 
 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 unsigned long Size() const;
    
    debSourcesIndex(std::string URI,std::string Dist,std::string Section,bool Trusted);
-   virtual ~debSourcesIndex() {};
+   virtual ~debSourcesIndex();
 };
 
 class debDebPkgFileIndex : public pkgIndexFile
 };
 
 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 std::string ArchiveURI(std::string /*File*/) const;
 
    debDebPkgFileIndex(std::string DebFile);
-   virtual ~debDebPkgFileIndex() {};
-};   
+   virtual ~debDebPkgFileIndex();
+};
 
 class debDscFileIndex : public pkgIndexFile
 {
 
 class debDscFileIndex : public pkgIndexFile
 {
index 63414c9448d7e25dc4cf32a0d85a781c5f749eec..502bd1a5132d887369517351a3b3e0e61e0da3a5 100644 (file)
@@ -1015,5 +1015,4 @@ bool debDebFileParser::UsePackage(pkgCache::PkgIterator &Pkg,
    return res;
 }
 
    return res;
 }
 
-
-
+debListParser::~debListParser() {}
index b55e57d41afcb962baad3be92e4f1246859d12a8..f20f7f33e520ae4509cd438f8a9aa1e8ea5c0f4b 100644 (file)
@@ -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 = "");
    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
 };
 
 class debDebFileParser : public debListParser
index d2c04d8b281d29caaa7f71254f2ee7ca5d0ccfa8..d08bb3c7ed1477b0d793da4825f3b594665aeee2 100644 (file)
@@ -207,3 +207,5 @@ void debRecordParser::GetRec(const char *&Start,const char *&Stop)
    Section.GetSection(Start,Stop);
 }
                                                                        /*}}}*/
    Section.GetSection(Start,Stop);
 }
                                                                        /*}}}*/
+
+debRecordParser::~debRecordParser() {};
index 2bd3f3c8f901ae04594de3edf1f13844f1e8268e..6b5f94334bba746b7747197e2e3454e1186ed526 100644 (file)
@@ -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 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
 };
 
 // custom record parser that reads deb files directly
index bb3b5d340a5d60ca30a96a657fd0a5439a72ebae..c8767d6068f3c9e82de2449f17d8536e7a3e06b4 100644 (file)
@@ -793,3 +793,5 @@ bool TranslationsCopy::CopyTranslations(string CDROM,string Name,   /*{{{*/
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
+
+IndexCopy::~IndexCopy() {}
index ca33a2cb8c29bcf0f151d02ffaaded2a65f02df4..701beb0758a565455500f845e347626618d56b0f 100644 (file)
@@ -53,7 +53,7 @@ class IndexCopy                                                               /*{{{*/
 
    bool CopyPackages(std::string CDROM,std::string Name,std::vector<std::string> &List,
                     pkgCdromStatus *log);
 
    bool CopyPackages(std::string CDROM,std::string Name,std::vector<std::string> &List,
                     pkgCdromStatus *log);
-   virtual ~IndexCopy() {};
+   virtual ~IndexCopy();
 };
                                                                        /*}}}*/
 class PackageCopy : public IndexCopy                                   /*{{{*/
 };
                                                                        /*}}}*/
 class PackageCopy : public IndexCopy                                   /*{{{*/
index e97ea0ac9dfafb3c5f6048fabc0889a6b178cc57..8c1e2229b85fc6c44af151774a8abc05cc58918a 100644 (file)
@@ -261,3 +261,5 @@ indexRecords::indexRecords(const string ExpectedDist) :
    ExpectedDist(ExpectedDist), ValidUntil(0), SupportsAcquireByHash(false)
 {
 }
    ExpectedDist(ExpectedDist), ValidUntil(0), SupportsAcquireByHash(false)
 {
 }
+
+indexRecords::~indexRecords() {}
index f2d2c775ce69109352f46ef4835d4397ad37ab96..e1a2c0f741dddd0ebf7b33e2bd6e22a3c6079b34 100644 (file)
@@ -56,7 +56,7 @@ class indexRecords
    time_t GetValidUntil() const;
    virtual bool CheckDist(const std::string MaybeDist) const;
    std::string GetExpectedDist() const;
    time_t GetValidUntil() const;
    virtual bool CheckDist(const std::string MaybeDist) const;
    std::string GetExpectedDist() const;
-   virtual ~indexRecords(){};
+   virtual ~indexRecords();
 };
 
 #if __GNUC__ >= 4
 };
 
 #if __GNUC__ >= 4
index 26c895417644058af8e34bcc6b73166979b52a5d..b263baf666deed247e3c637099913505c013255a 100644 (file)
@@ -757,3 +757,5 @@ bool TFRewrite(FILE *Output,pkgTagSection const &Tags,const char *Order[],
    return true;
 }
                                                                        /*}}}*/
    return true;
 }
                                                                        /*}}}*/
+
+pkgTagSection::~pkgTagSection() {}
index 39ec94d86ebb20bd521538864036d2443d2b0908..4cd99b2fc045fde13ea0b486946a4305d8d48cf7 100644 (file)
@@ -109,7 +109,7 @@ class pkgTagSection
    };
    
    pkgTagSection();
    };
    
    pkgTagSection();
-   virtual ~pkgTagSection() {};
+   virtual ~pkgTagSection();
 };
 
 class pkgTagFilePrivate;
 };
 
 class pkgTagFilePrivate;