summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:53:36 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:53:36 +0000
commit803fafcbaa2fe4e1c49249e589d50f892b1b2424 (patch)
tree5daec4a662bddc88a2e5410ee7b8a7839495a2b4
parentb80d5b89446d8d4818a07690c395d1d20b82ba7f (diff)
Made apt-cache regenerate its cache in memory
Author: jgg Date: 1999-04-19 02:35:38 GMT Made apt-cache regenerate its cache in memory
-rw-r--r--apt-pkg/cachefile.cc5
-rw-r--r--apt-pkg/pkgcachegen.cc7
-rw-r--r--cmdline/apt-cache.cc15
3 files changed, 17 insertions, 10 deletions
diff --git a/apt-pkg/cachefile.cc b/apt-pkg/cachefile.cc
index 285eb310f..88c3fa81a 100644
--- a/apt-pkg/cachefile.cc
+++ b/apt-pkg/cachefile.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: cachefile.cc,v 1.1 1999/04/18 06:36:36 jgg Exp $
+// $Id: cachefile.cc,v 1.2 1999/04/19 02:35:38 jgg Exp $
/* ######################################################################
CacheFile - Simple wrapper class for opening, generating and whatnot
@@ -86,10 +86,9 @@ bool pkgCacheFile::Open(OpProgress &Progress,bool WithLock)
// Create the dependency cache
Cache = new pkgDepCache(*Map,Progress);
+ Progress.Done();
if (_error->PendingError() == true)
return false;
-
- Progress.Done();
return true;
}
diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc
index 1e31ff300..fd4f8965b 100644
--- a/apt-pkg/pkgcachegen.cc
+++ b/apt-pkg/pkgcachegen.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: pkgcachegen.cc,v 1.36 1999/04/18 07:25:32 jgg Exp $
+// $Id: pkgcachegen.cc,v 1.37 1999/04/19 02:35:38 jgg Exp $
/* ######################################################################
Package Cache Generator - Generator for the cache structure.
@@ -26,6 +26,7 @@
#include <sys/stat.h>
#include <unistd.h>
+#include <errno.h>
/*}}}*/
// CacheGenerator::pkgCacheGenerator - Constructor /*{{{*/
@@ -761,7 +762,9 @@ MMap *pkgMakeStatusCacheMem(pkgSourceList &List,OpProgress &Progress)
/* If the cache file is writeable this is just a wrapper for
MakeStatusCache */
string CacheFile = _config->FindFile("Dir::Cache::pkgcache");
- bool Writeable = access(CacheFile.c_str(),W_OK) == 0;
+ bool Writeable = (access(CacheFile.c_str(),W_OK) == 0) ||
+ (errno == ENOENT);
+
if (Writeable == true)
{
if (pkgMakeStatusCache(List,Progress) == false)
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc
index 3f50f0c02..9a404e5be 100644
--- a/cmdline/apt-cache.cc
+++ b/cmdline/apt-cache.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-cache.cc,v 1.33 1999/04/12 04:21:20 jgg Exp $
+// $Id: apt-cache.cc,v 1.34 1999/04/19 02:35:38 jgg Exp $
/* ######################################################################
apt-cache - Manages the cache files
@@ -658,15 +658,20 @@ int main(int argc,const char *argv[])
if (CmdL.DispatchArg(CmdsA,false) == false && _error->PendingError() == false)
{
// Open the cache file
- FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::ReadOnly);
- MMap Map(CacheF,MMap::Public | MMap::ReadOnly);
+ pkgSourceList List;
+ List.ReadMainList();
+
+ // Generate it and map it
+ OpProgress Prog;
+ MMap *Map = pkgMakeStatusCacheMem(List,Prog);
if (_error->PendingError() == false)
{
- pkgCache Cache(Map);
+ pkgCache Cache(*Map);
GCache = &Cache;
if (_error->PendingError() == false)
CmdL.DispatchArg(CmdsB);
- }
+ }
+ delete Map;
}
// Print any errors or warnings found during parsing