From: Amos Jeffries Date: Thu, 5 Nov 2015 15:37:50 +0000 (-0800) Subject: Convert cacheDigestClone() to member X-Git-Tag: SQUID_4_0_3~18^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fab3d38b8fb7fb6af432c9726aeabef6dc20134f;p=thirdparty%2Fsquid.git Convert cacheDigestClone() to member --- diff --git a/src/CacheDigest.cc b/src/CacheDigest.cc index 4ad5a9050e..bafc01a0a9 100644 --- a/src/CacheDigest.cc +++ b/src/CacheDigest.cc @@ -67,15 +67,14 @@ CacheDigest::~CacheDigest() } CacheDigest * -cacheDigestClone(const CacheDigest * cd) +CacheDigest::clone() const { CacheDigest *clone; - assert(cd); - clone = new CacheDigest(cd->capacity, cd->bits_per_entry); - clone->count = cd->count; - clone->del_count = cd->del_count; - assert(cd->mask_size == clone->mask_size); - memcpy(clone->mask, cd->mask, cd->mask_size); + clone = new CacheDigest(capacity, bits_per_entry); + clone->count = count; + clone->del_count = del_count; + assert(mask_size == clone->mask_size); + memcpy(clone->mask, mask, mask_size); return clone; } diff --git a/src/CacheDigest.h b/src/CacheDigest.h index c76a855001..40bf14a014 100644 --- a/src/CacheDigest.h +++ b/src/CacheDigest.h @@ -24,6 +24,10 @@ public: CacheDigest(int capacity, int bpe); ~CacheDigest(); + // NP: only used by broken unit-test + /// produce a new identical copy of the digest object + CacheDigest *clone() const; + public: /* public, read-only */ char *mask; /* bit mask */ @@ -34,7 +38,6 @@ public: int del_count; /* number of deletions performed so far */ }; -CacheDigest *cacheDigestClone(const CacheDigest * cd); void cacheDigestClear(CacheDigest * cd); void cacheDigestChangeCap(CacheDigest * cd, int new_cap); int cacheDigestTest(const CacheDigest * cd, const cache_key * key); diff --git a/src/test_cache_digest.cc b/src/test_cache_digest.cc index b0e8701140..cedcf575ff 100644 --- a/src/test_cache_digest.cc +++ b/src/test_cache_digest.cc @@ -581,7 +581,7 @@ main(int argc, char *argv[]) /* digest peer cache content */ cacheResetDigest(them); - us->digest = cacheDigestClone(them->digest); /* @netw@ */ + us->digest = them->digest->clone(); /* shift the time in access log to match ready_time */ fileIteratorSetCurTime(fis[0], ready_time); diff --git a/src/tests/stub_CacheDigest.cc b/src/tests/stub_CacheDigest.cc index 851ac8fd82..685cbeb4e5 100644 --- a/src/tests/stub_CacheDigest.cc +++ b/src/tests/stub_CacheDigest.cc @@ -19,7 +19,7 @@ class StoreEntry; #include "CacheDigest.h" CacheDigest::CacheDigest(int, int) {STUB} CacheDigest::~CacheDigest() {STUB} -CacheDigest * cacheDigestClone(const CacheDigest *) STUB_RETVAL(NULL) +CacheDigest *CacheDigest::clone() const STUB_RETVAL(nullptr) void cacheDigestClear(CacheDigest * ) STUB void cacheDigestChangeCap(CacheDigest *,int) STUB int cacheDigestTest(const CacheDigest *, const cache_key *) STUB_RETVAL(1)