diff options
author | Julian Andres Klode <jak@debian.org> | 2016-01-23 15:02:48 +0100 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2016-01-23 15:13:04 +0100 |
commit | 19819ac58a420275e0ae9aa7e2a34c72cba8af5e (patch) | |
tree | 3834146d4cd0084b9bbb87e1fb51237722af3cc8 | |
parent | 0c20302f5a02f9961b1a5c63913434ba03dcf3a0 (diff) |
Pass the old map size to ReMap()
This allows us to check if a value to be remapped was inside
the cache or not, which will become useful at a later point.
Gbp-Dch: ignore
-rw-r--r-- | apt-pkg/pkgcachegen.cc | 11 | ||||
-rw-r--r-- | apt-pkg/pkgcachegen.h | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 43347cf65..a472babeb 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -141,7 +141,7 @@ pkgCacheGenerator::~pkgCacheGenerator() Map.Sync(0,sizeof(pkgCache::Header)); } /*}}}*/ -void pkgCacheGenerator::ReMap(void const * const oldMap, void const * const newMap) {/*{{{*/ +void pkgCacheGenerator::ReMap(void const * const oldMap, void const * const newMap, size_t oldSize) {/*{{{*/ if (oldMap == newMap) return; @@ -181,27 +181,30 @@ void pkgCacheGenerator::ReMap(void const * const oldMap, void const * const newM // CacheGenerator::WriteStringInMap /*{{{*/ map_stringitem_t pkgCacheGenerator::WriteStringInMap(const char *String, const unsigned long &Len) { + size_t oldSize = Map.Size(); void const * const oldMap = Map.Data(); map_stringitem_t const index = Map.WriteString(String, Len); if (index != 0) - ReMap(oldMap, Map.Data()); + ReMap(oldMap, Map.Data(), oldSize); return index; } /*}}}*/ // CacheGenerator::WriteStringInMap /*{{{*/ map_stringitem_t pkgCacheGenerator::WriteStringInMap(const char *String) { + size_t oldSize = Map.Size(); void const * const oldMap = Map.Data(); map_stringitem_t const index = Map.WriteString(String); if (index != 0) - ReMap(oldMap, Map.Data()); + ReMap(oldMap, Map.Data(), oldSize); return index; } /*}}}*/ map_pointer_t pkgCacheGenerator::AllocateInMap(const unsigned long &size) {/*{{{*/ + size_t oldSize = Map.Size(); void const * const oldMap = Map.Data(); map_pointer_t const index = Map.Allocate(size); if (index != 0) - ReMap(oldMap, Map.Data()); + ReMap(oldMap, Map.Data(), oldSize); return index; } /*}}}*/ diff --git a/apt-pkg/pkgcachegen.h b/apt-pkg/pkgcachegen.h index d8d1e303a..ea288ad6e 100644 --- a/apt-pkg/pkgcachegen.h +++ b/apt-pkg/pkgcachegen.h @@ -149,7 +149,7 @@ class APT_HIDDEN pkgCacheGenerator /*{{{*/ MMap **OutMap,pkgCache **OutCache, bool AllowMem = false); APT_PUBLIC static bool MakeOnlyStatusCache(OpProgress *Progress,DynamicMMap **OutMap); - void ReMap(void const * const oldMap, void const * const newMap); + void ReMap(void const * const oldMap, void const * const newMap, size_t oldSize); pkgCacheGenerator(DynamicMMap *Map,OpProgress *Progress); virtual ~pkgCacheGenerator(); |