]> git.saurik.com Git - apt.git/commitdiff
Deprecate SPtrArray<T> and convert everyone to unique_ptr<T[]>
authorJulian Andres Klode <jak@debian.org>
Thu, 13 Aug 2015 09:28:32 +0000 (11:28 +0200)
committerJulian Andres Klode <jak@debian.org>
Thu, 13 Aug 2015 09:31:00 +0000 (11:31 +0200)
More standardization

apt-pkg/algorithms.cc
apt-pkg/contrib/fileutl.cc
apt-pkg/contrib/sptr.h
apt-pkg/depcache.cc
apt-pkg/orderlist.cc
apt-pkg/packagemanager.cc
apt-pkg/pkgcachegen.cc
apt-pkg/policy.cc
cmdline/apt-cache.cc
cmdline/apt-get.cc

index 747b73e05b9880d566b18244d194871fe6ce59fd..446afa08d44824e1d468eb8ae111e415e349e673 100644 (file)
@@ -476,8 +476,8 @@ void pkgProblemResolver::MakeScores()
    }
 
    // Copy the scores to advoid additive looping
-   SPtrArray<int> OldScores = new int[Size];
-   memcpy(OldScores,Scores,sizeof(*Scores)*Size);
+   std::unique_ptr<int[]> OldScores(new int[Size]);
+   memcpy(OldScores.get(),Scores,sizeof(*Scores)*Size);
       
    /* Now we cause 1 level of dependency inheritance, that is we add the 
       score of the packages that depend on the target Package. This 
@@ -702,17 +702,17 @@ bool pkgProblemResolver::ResolveInternal(bool const BrokenFix)
       operates from highest score to lowest. This prevents problems when
       high score packages cause the removal of lower score packages that
       would cause the removal of even lower score packages. */
-   SPtrArray<pkgCache::Package *> PList = new pkgCache::Package *[Size];
-   pkgCache::Package **PEnd = PList;
+   std::unique_ptr<pkgCache::Package *[]> PList(new pkgCache::Package *[Size]);
+   pkgCache::Package **PEnd = PList.get();
    for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I)
       *PEnd++ = I;
    This = this;
-   qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort);
+   qsort(PList.get(),PEnd - PList.get(),sizeof(PList[0]),&ScoreSort);
 
    if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true)
    {
       clog << "Show Scores" << endl;
-      for (pkgCache::Package **K = PList; K != PEnd; K++)
+      for (pkgCache::Package **K = PList.get(); K != PEnd; K++)
          if (Scores[(*K)->ID] != 0)
          {
            pkgCache::PkgIterator Pkg(Cache,*K);
@@ -734,7 +734,7 @@ bool pkgProblemResolver::ResolveInternal(bool const BrokenFix)
    for (int Counter = 0; Counter != 10 && Change == true; Counter++)
    {
       Change = false;
-      for (pkgCache::Package **K = PList; K != PEnd; K++)
+      for (pkgCache::Package **K = PList.get(); K != PEnd; K++)
       {
         pkgCache::PkgIterator I(Cache,*K);
 
@@ -845,8 +845,8 @@ bool pkgProblemResolver::ResolveInternal(bool const BrokenFix)
            /* Look across the version list. If there are no possible
               targets then we keep the package and bail. This is necessary
               if a package has a dep on another package that can't be found */
-           SPtrArray<pkgCache::Version *> VList = Start.AllTargets();
-           if (*VList == 0 && (Flags[I->ID] & Protected) != Protected &&
+           std::unique_ptr<pkgCache::Version *[]> VList(Start.AllTargets());
+           if (VList[0] == 0 && (Flags[I->ID] & Protected) != Protected &&
                Start.IsNegative() == false &&
                Cache[I].NowBroken() == false)
            {          
@@ -863,7 +863,7 @@ bool pkgProblemResolver::ResolveInternal(bool const BrokenFix)
            }
            
            bool Done = false;
-           for (pkgCache::Version **V = VList; *V != 0; V++)
+           for (pkgCache::Version **V = VList.get(); *V != 0; V++)
            {
               pkgCache::VerIterator Ver(Cache,*V);
               pkgCache::PkgIterator Pkg = Ver.ParentPkg();
@@ -1233,8 +1233,8 @@ bool pkgProblemResolver::ResolveByKeepInternal()
               clog << "Package " << I.FullName(false) << " " << Start << endl;
 
            // Look at all the possible provides on this package
-           SPtrArray<pkgCache::Version *> VList = Start.AllTargets();
-           for (pkgCache::Version **V = VList; *V != 0; V++)
+           std::unique_ptr<pkgCache::Version *[]> VList(Start.AllTargets());
+           for (pkgCache::Version **V = VList.get(); *V != 0; V++)
            {
               pkgCache::VerIterator Ver(Cache,*V);
               pkgCache::PkgIterator Pkg = Ver.ParentPkg();
index 4cc8112af9fb99366e28c45914b845b0a395483b..a6af27b0092f8a19a3d5c9f1f4206faf84b315ef 100644 (file)
@@ -52,6 +52,7 @@
 
 #include <set>
 #include <algorithm>
+#include <memory>
 
 #ifdef HAVE_ZLIB
        #include <zlib.h>
@@ -159,7 +160,7 @@ bool CopyFile(FileFd &From,FileFd &To)
       return false;
    
    // Buffered copy between fds
-   SPtrArray<unsigned char> Buf = new unsigned char[64000];
+   std::unique_ptr<unsigned char[]> Buf(new unsigned char[64000]);
    unsigned long long Size = From.Size();
    while (Size != 0)
    {
@@ -167,8 +168,8 @@ bool CopyFile(FileFd &From,FileFd &To)
       if (Size > 64000)
         ToRead = 64000;
       
-      if (From.Read(Buf,ToRead) == false || 
-         To.Write(Buf,ToRead) == false)
+      if (From.Read(Buf.get(),ToRead) == false ||
+         To.Write(Buf.get(),ToRead) == false)
         return false;
       
       Size -= ToRead;
index 5cf118b8464fdc7f16ac81ed04c33472d197cd29..92f4cdec827e9bf510b0145f4bb35684be917a73 100644 (file)
@@ -43,7 +43,7 @@ class APT_DEPRECATED SPtr
 };
 
 template <class T>
-class SPtrArray
+class APT_DEPRECATED SPtrArray
 {
    public:
    T *Ptr;
index 92b07390868cf40ad2c8fc95b27fc51e51089fb1..3676058263dc7f70ede6f89f694254632f7b0a03 100644 (file)
@@ -1281,9 +1281,9 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
         Otherwise we remove the offender if needed */
       else if (Start.IsNegative() == true && Start->Type != pkgCache::Dep::Obsoletes)
       {
-        SPtrArray<Version *> List = Start.AllTargets();
+        std::unique_ptr<Version *[]> List(Start.AllTargets());
         pkgCache::PkgIterator TrgPkg = Start.TargetPkg();
-        for (Version **I = List; *I != 0; I++)
+        for (Version **I = List.get(); *I != 0; I++)
         {
            VerIterator Ver(*this,*I);
            PkgIterator Pkg = Ver.ParentPkg();
index edbdd09ab4088c1b5812416a723d661c21459825..dae37e8f8f8bc55d147af020eb54ee924ba2e26f 100644 (file)
@@ -142,9 +142,9 @@ bool pkgOrderList::DoRun()
 {   
    // Temp list
    unsigned long Size = Cache.Head().PackageCount;
-   SPtrArray<Package *> NList = new Package *[Size];
-   SPtrArray<Package *> AfterList = new Package *[Size];
-   AfterEnd = AfterList;
+   std::unique_ptr<Package *[]> NList(new Package *[Size]);
+   std::unique_ptr<Package *[]> AfterList(new Package *[Size]);
+   AfterEnd = AfterList.get();
    
    Depth = 0;
    WipeFlags(Added | AddPending | Loop | InList);
@@ -154,7 +154,7 @@ bool pkgOrderList::DoRun()
 
    // Rebuild the main list into the temp list.
    iterator OldEnd = End;
-   End = NList;
+   End = NList.get();
    for (iterator I = List; I != OldEnd; ++I)
       if (VisitNode(PkgIterator(Cache,*I), "DoRun") == false)
       {
@@ -163,12 +163,12 @@ bool pkgOrderList::DoRun()
       }
    
    // Copy the after list to the end of the main list
-   for (Package **I = AfterList; I != AfterEnd; I++)
+   for (Package **I = AfterList.get(); I != AfterEnd; I++)
       *End++ = *I;
    
    // Swap the main list to the new list
    delete [] List;
-   List = NList.UnGuard();
+   List = NList.release();
    return true;
 }
                                                                        /*}}}*/
@@ -512,8 +512,8 @@ bool pkgOrderList::VisitRProvides(DepFunc F,VerIterator Ver)
    against it! */
 bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
 {
-   SPtrArray<Version *> List = D.AllTargets();
-   for (Version **I = List; *I != 0; ++I)
+   std::unique_ptr<Version *[]> List(D.AllTargets());
+   for (Version **I = List.get(); *I != 0; ++I)
    {
       VerIterator Ver(Cache,*I);
       PkgIterator Pkg = Ver.ParentPkg();
@@ -541,7 +541,7 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
    }
    if (D.IsNegative() == false)
       return true;
-   for (Version **I = List; *I != 0; ++I)
+   for (Version **I = List.get(); *I != 0; ++I)
    {
       VerIterator Ver(Cache,*I);
       PkgIterator Pkg = Ver.ParentPkg();
@@ -1075,9 +1075,9 @@ void pkgOrderList::WipeFlags(unsigned long F)
    this fails to produce a suitable result. */
 bool pkgOrderList::CheckDep(DepIterator D)
 {
-   SPtrArray<Version *> List = D.AllTargets();
+   std::unique_ptr<Version *[]> List(D.AllTargets());
    bool Hit = false;
-   for (Version **I = List; *I != 0; I++)
+   for (Version **I = List.get(); *I != 0; I++)
    {
       VerIterator Ver(Cache,*I);
       PkgIterator Pkg = Ver.ParentPkg();
index 78142ab13a2f8291f5f9f99b1df6fa45c2b5c081..dcae0112614911ae276dc8e0c8fec0bd4a8ec4fc 100644 (file)
@@ -390,9 +390,9 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
          // to do anything at all
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           SPtrArray<Version *> VList = Cur.AllTargets();
+           std::unique_ptr<Version *> VList(Cur.AllTargets());
 
-           for (Version **I = VList; *I != 0; ++I)
+           for (Version **I = VList.get(); *I != 0; ++I)
            {
               VerIterator Ver(Cache,*I);
               PkgIterator DepPkg = Ver.ParentPkg();
@@ -440,9 +440,9 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
          // probably due to loops.
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           SPtrArray<Version *> VList = Cur.AllTargets();
+           std::unique_ptr<Version *> VList(Cur.AllTargets());
 
-           for (Version **I = VList; *I != 0; ++I)
+           for (Version **I = VList.get(); *I != 0; ++I)
            {
               VerIterator Ver(Cache,*I);
               PkgIterator DepPkg = Ver.ParentPkg();
@@ -515,9 +515,9 @@ bool pkgPackageManager::SmartConfigure(PkgIterator Pkg, int const Depth)
         // Search for dependencies which are unpacked but aren't configured yet (maybe loops)
         for (DepIterator Cur = Start; true; ++Cur)
         {
-           SPtrArray<Version *> VList = Cur.AllTargets();
+           std::unique_ptr<Version *> VList(Cur.AllTargets());
 
-           for (Version **I = VList; *I != 0; ++I)
+           for (Version **I = VList.get(); *I != 0; ++I)
            {
               VerIterator Ver(Cache,*I);
               PkgIterator DepPkg = Ver.ParentPkg();
@@ -726,8 +726,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
            // Look for easy targets: packages that are already okay
            for (DepIterator Cur = Start; Bad == true; ++Cur)
            {
-              SPtrArray<Version *> VList = Cur.AllTargets();
-              for (Version **I = VList; *I != 0; ++I)
+              std::unique_ptr<Version *> VList(Cur.AllTargets());
+              for (Version **I = VList.get(); *I != 0; ++I)
               {
                  VerIterator Ver(Cache,*I);
                  PkgIterator Pkg = Ver.ParentPkg();
@@ -750,8 +750,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
            // Look for something that could be configured.
            for (DepIterator Cur = Start; Bad == true && Cur.end() == false; ++Cur)
            {
-              SPtrArray<Version *> VList = Cur.AllTargets();
-              for (Version **I = VList; *I != 0; ++I)
+              std::unique_ptr<Version *[]> VList(Cur.AllTargets());
+              for (Version **I = VList.get(); *I != 0; ++I)
               {
                  VerIterator Ver(Cache,*I);
                  PkgIterator DepPkg = Ver.ParentPkg();
@@ -806,8 +806,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
                  End->Type == pkgCache::Dep::Obsoletes ||
                  End->Type == pkgCache::Dep::DpkgBreaks)
         {
-           SPtrArray<Version *> VList = End.AllTargets();
-           for (Version **I = VList; *I != 0; ++I)
+           std::unique_ptr<Version *[]> VList(End.AllTargets());
+           for (Version **I = VList.get(); *I != 0; ++I)
            {
               VerIterator Ver(Cache,*I);
               PkgIterator ConflictPkg = Ver.ParentPkg();
index a9de2087898f4575c246689f8663abdbcf6486e3..68175a24ab3dbb9e4c7b750387729eb450853838 100644 (file)
@@ -1260,8 +1260,8 @@ static bool CheckValidity(const string &CacheFile,
       return false;
    }
 
-   SPtrArray<bool> RlsVisited = new bool[Cache.HeaderP->ReleaseFileCount];
-   memset(RlsVisited,0,sizeof(*RlsVisited)*Cache.HeaderP->ReleaseFileCount);
+   std::unique_ptr<bool[]> RlsVisited(new bool[Cache.HeaderP->ReleaseFileCount]);
+   memset(RlsVisited.get(),0,sizeof(RlsVisited[0])*Cache.HeaderP->ReleaseFileCount);
    std::vector<pkgIndexFile *> Files;
    for (pkgSourceList::const_iterator i = List.begin(); i != List.end(); ++i)
    {
@@ -1295,8 +1295,8 @@ static bool CheckValidity(const string &CacheFile,
 
    /* Now we check every index file, see if it is in the cache,
       verify the IMS data and check that it is on the disk too.. */
-   SPtrArray<bool> Visited = new bool[Cache.HeaderP->PackageFileCount];
-   memset(Visited,0,sizeof(*Visited)*Cache.HeaderP->PackageFileCount);
+   std::unique_ptr<bool[]> Visited(new bool[Cache.HeaderP->PackageFileCount]);
+   memset(Visited.get(),0,sizeof(Visited[0])*Cache.HeaderP->PackageFileCount);
    for (std::vector<pkgIndexFile *>::const_reverse_iterator PkgFile = Files.rbegin(); PkgFile != Files.rend(); ++PkgFile)
    {
       if (Debug == true)
index 76c36b71bfde8745933f4bc5ff7a18478c288a66..4711372bc4db61601711adf0207f5689a2643f44 100644 (file)
@@ -100,8 +100,8 @@ bool pkgPolicy::InitDefaults()
    }
 
    // Apply the defaults..
-   SPtrArray<bool> Fixed = new bool[Cache->HeaderP->PackageFileCount];
-   memset(Fixed,0,sizeof(*Fixed)*Cache->HeaderP->PackageFileCount);
+   std::unique_ptr<bool[]> Fixed(new bool[Cache->HeaderP->PackageFileCount]);
+   memset(Fixed.get(),0,sizeof(Fixed[0])*Cache->HeaderP->PackageFileCount);
    StatusOverride = false;
    for (vector<Pin>::const_iterator I = Defaults.begin(); I != Defaults.end(); ++I)
    {
index a2c4454011b8a4101166773b247afd51f406c2f6..117a4429235c07aad383f6ec692086b0c2a806a8 100644 (file)
@@ -749,9 +749,9 @@ static bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
              }
            
            // Display all solutions
-           SPtrArray<pkgCache::Version *> List = D.AllTargets();
-           pkgPrioSortList(*Cache,List);
-           for (pkgCache::Version **I = List; *I != 0; I++)
+           std::unique_ptr<pkgCache::Version *[]> List(D.AllTargets());
+           pkgPrioSortList(*Cache,List.get());
+           for (pkgCache::Version **I = List.get(); *I != 0; I++)
            {
               pkgCache::VerIterator V(*Cache,*I);
               if (V != Cache->VerP + V.ParentPkg()->VersionList ||
index 0b79c507af49da2c1bb12870279ad74ff4b1bd58..61ed41164c52384cf7dbe813486bb33da30245e7 100644 (file)
@@ -701,7 +701,7 @@ static bool DoSource(CommandLine &CmdL)
    AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
    pkgAcquire Fetcher(&Stat);
 
-   SPtrArray<DscFile> Dsc = new DscFile[CmdL.FileSize()];
+   std::unique_ptr<DscFile[]> Dsc(new DscFile[CmdL.FileSize()]);
    
    // insert all downloaded uris into this set to avoid downloading them
    // twice