- change an array to vector for code readability + safety (Ralf Corsepius)
authorpmatilai <pmatilai>
Mon, 24 Apr 2006 14:34:02 +0000 (14:34 +0000)
committerpmatilai <pmatilai>
Mon, 24 Apr 2006 14:34:02 +0000 (14:34 +0000)
apt-pkg/pkgrecords.cc
apt-pkg/pkgrecords.h

index 62f94e2..694b9c3 100644 (file)
@@ -24,10 +24,11 @@ using namespace std;
 // Records::pkgRecords - Constructor                                   /*{{{*/
 // ---------------------------------------------------------------------
 /* This will create the necessary structures to access the status files */
-pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0)
+pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), 
+  Files(Cache.HeaderP->PackageFileCount)
 {
-   Files = new Parser *[Cache.HeaderP->PackageFileCount];
-   memset(Files,0,sizeof(*Files)*Cache.HeaderP->PackageFileCount);
+//   Files = new Parser *[Cache.HeaderP->PackageFileCount];
+//   memset(Files,0,sizeof(*Files)*Cache.HeaderP->PackageFileCount);
    
    for (pkgCache::PkgFileIterator I = Cache.FileBegin(); 
        I.end() == false; I++)
@@ -43,11 +44,6 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0)
       if (Files[I->ID] == 0)
         return;
    }   
-   
-   // CNC:2002-11-28
-   // We store that to make sure that the destructor won't segfault,
-   // even if the Cache object was destructed before this instance.
-   PackageFileCount = Cache.HeaderP->PackageFileCount;
 }
                                                                        /*}}}*/
 // Records::~pkgRecords - Destructor                                   /*{{{*/
@@ -55,11 +51,12 @@ pkgRecords::pkgRecords(pkgCache &Cache) : Cache(Cache), Files(0)
 /* */
 pkgRecords::~pkgRecords()
 {
-   // CNC:2002-11-28
-   // See comments above.
-   for (unsigned I = 0; I != (unsigned)PackageFileCount; I++)
-      delete Files[I];
-   delete [] Files;
+   for ( vector<Parser*>::iterator it = Files.begin();
+     it != Files.end();
+     ++it)
+   {
+      delete *it;
+   }
 }
                                                                        /*}}}*/
 // Records::Lookup - Get a parser for the package version file         /*{{{*/
index 1bf1f9e..63935d4 100644 (file)
@@ -24,6 +24,8 @@
 #include <apt-pkg/pkgcache.h>
 #include <apt-pkg/fileutl.h>
 
+#include <vector>
+
 class pkgRecords
 {
    public:
@@ -32,11 +34,8 @@ class pkgRecords
    private:
    
    pkgCache &Cache;
-   Parser **Files;
-      
-   // CNC:2002-11-28
-   int PackageFileCount;
-   
+   std::vector<Parser *>Files;
+
    public:
 
    // Lookup function