* apt-pkg/pkgrecords.cc,h:
authorMichael Vogt <egon@bottom>
Sun, 10 Jun 2007 21:55:03 +0000 (23:55 +0200)
committerMichael Vogt <egon@bottom>
Sun, 10 Jun 2007 21:55:03 +0000 (23:55 +0200)
  - merge fix in destructor code

1  2 
apt-pkg/pkgrecords.cc
apt-pkg/pkgrecords.h

index 0aaa2096a16df72d0a0395e89b82c0bc2b0e0cee,0aaa2096a16df72d0a0395e89b82c0bc2b0e0cee..e506de73a63863a6e2d60e1737be8249d29f8198
  // 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);
--   
--   for (pkgCache::PkgFileIterator I = Cache.FileBegin(); 
--      I.end() == false; I++)
++   for (pkgCache::PkgFileIterator I = Cache.FileBegin();
++        I.end() == false; I++)
     {
        const pkgIndexFile::Type *Type = pkgIndexFile::Type::GetType(I.IndexType());
        if (Type == 0)
        {
--       _error->Error(_("Index file type '%s' is not supported"),I.IndexType());
--       return;
++         _error->Error(_("Index file type '%s' is not supported"),I.IndexType());
++         return;
        }
  
        Files[I->ID] = Type->CreatePkgParser(I);
        if (Files[I->ID] == 0)
--       return;
--   }   
++         return;
++   }
  }
                                                                        /*}}}*/
  // Records::~pkgRecords - Destructor                                  /*{{{*/
  /* */
  pkgRecords::~pkgRecords()
  {
--   for (unsigned I = 0; I != Cache.HeaderP->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 ea1a23fc484bf1b407d0545d69114d5490be11de,ea1a23fc484bf1b407d0545d69114d5490be11de..7b9f51a5000d56ba6f340532f260ffacc0343475
@@@ -20,6 -20,6 +20,7 @@@
  
  #include <apt-pkg/pkgcache.h>
  #include <apt-pkg/fileutl.h>
++#include <vector>
  
  class pkgRecords
  {
@@@ -29,8 -29,8 +30,8 @@@
     private:
     
     pkgCache &Cache;
--   Parser **Files;
--      
++   std::vector<Parser *>Files;
++
     public:
  
     // Lookup function