From: Alex Rousskov Date: Wed, 5 Dec 2012 20:03:38 +0000 (-0700) Subject: Maximum number of slots is the maximum number of entries rather than X-Git-Tag: SQUID_3_5_0_1~444^2~93 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d0116978418612fe20b77e35c9e37a9d21cc6407;p=thirdparty%2Fsquid.git Maximum number of slots is the maximum number of entries rather than maximum number of bytes. Renamed loaded member to processed, to avoid name clash with a local counter. --- diff --git a/src/fs/rock/RockRebuild.cc b/src/fs/rock/RockRebuild.cc index 3705ad981e..59096d29ad 100644 --- a/src/fs/rock/RockRebuild.cc +++ b/src/fs/rock/RockRebuild.cc @@ -36,9 +36,9 @@ Rock::Rebuild::Rebuild(SwapDir *dir): AsyncJob("Rock::Rebuild"), dbSize = sd->diskOffsetLimit(); // we do not care about the trailer waste dbEntrySize = sd->slotSize; dbEntryLimit = sd->entryLimit(); - loaded.reserve(dbSize); - for (size_t i = 0; i < loaded.size(); ++i) - loaded.push_back(false); + processed.reserve(dbEntryLimit); + while (static_cast(processed.size()) < dbEntryLimit) + processed.push_back(false); } Rock::Rebuild::~Rebuild() @@ -225,7 +225,7 @@ Rock::Rebuild::doOneSlot() debugs(47,5, HERE << sd->index << " filen " << filen << " at " << dbSlot << " <= " << dbSize); - if (loaded[dbSlot]) + if (processed[dbSlot]) return; Ipc::Mem::PageId pageId; @@ -269,6 +269,6 @@ Rock::Rebuild::failure(const char *msg, int errNo) void Rock::Rebuild::invalidSlot(Ipc::Mem::PageId &pageId) { ++counts.invalid; - loaded[pageId.number - 1] = true; + processed[pageId.number - 1] = true; sd->dbSlotIndex->push(pageId); } diff --git a/src/fs/rock/RockRebuild.h b/src/fs/rock/RockRebuild.h index 787d5682cb..e5386a8bac 100644 --- a/src/fs/rock/RockRebuild.h +++ b/src/fs/rock/RockRebuild.h @@ -52,7 +52,8 @@ private: int64_t dbOffset; int filen; - Vector loaded; ///< true iff rebuilt is complete for a given slot + // TODO: use std::bitmap? + Vector processed; ///< true iff rebuilt is complete for a given slot StoreRebuildData counts;