pkgcachegen.cc | pkgcachegen.cc | |||
---|---|---|---|---|
skipping to change at line 1172 | skipping to change at line 1172 | |||
} | } | |||
else if (Debug == true) | else if (Debug == true) | |||
std::clog << "pkgcache.bin is NOT valid" << std::endl; | std::clog << "pkgcache.bin is NOT valid" << std::endl; | |||
/* At this point we know we need to reconstruct the package cache, | /* At this point we know we need to reconstruct the package cache, | |||
begin. */ | begin. */ | |||
SPtr<FileFd> CacheF; | SPtr<FileFd> CacheF; | |||
SPtr<DynamicMMap> Map; | SPtr<DynamicMMap> Map; | |||
if (Writeable == true && CacheFile.empty() == false) | if (Writeable == true && CacheFile.empty() == false) | |||
{ | { | |||
_error->PushToStack(); | ||||
unlink(CacheFile.c_str()); | unlink(CacheFile.c_str()); | |||
CacheF = new FileFd(CacheFile,FileFd::WriteAtomic); | CacheF = new FileFd(CacheFile,FileFd::WriteAtomic); | |||
fchmod(CacheF->Fd(),0644); | fchmod(CacheF->Fd(),0644); | |||
Map = CreateDynamicMMap(CacheF, MMap::Public); | Map = CreateDynamicMMap(CacheF, MMap::Public); | |||
if (_error->PendingError() == true) | if (_error->PendingError() == true) | |||
return false; | { | |||
if (Debug == true) | delete CacheF.UnGuard(); | |||
delete Map.UnGuard(); | ||||
if (Debug == true) | ||||
std::clog << "Open filebased MMap FAILED" << std::endl; | ||||
Writeable = false; | ||||
if (AllowMem == false) | ||||
{ | ||||
_error->MergeWithStack(); | ||||
return false; | ||||
} | ||||
_error->RevertToStack(); | ||||
} | ||||
else if (Debug == true) | ||||
{ | ||||
_error->MergeWithStack(); | ||||
std::clog << "Open filebased MMap" << std::endl; | std::clog << "Open filebased MMap" << std::endl; | |||
} | ||||
} | } | |||
else | if (Writeable == false || CacheFile.empty() == true) | |||
{ | { | |||
// Just build it in memory.. | // Just build it in memory.. | |||
Map = CreateDynamicMMap(NULL); | Map = CreateDynamicMMap(NULL); | |||
if (Debug == true) | if (Debug == true) | |||
std::clog << "Open memory Map (not filebased)" << std::endl; | std::clog << "Open memory Map (not filebased)" << std::endl; | |||
} | } | |||
// Lets try the source cache. | // Lets try the source cache. | |||
unsigned long CurrentSize = 0; | unsigned long CurrentSize = 0; | |||
unsigned long TotalSize = 0; | unsigned long TotalSize = 0; | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 19 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |