<< cd->mask_size << " bytes");
}
-CacheDigest::CacheDigest(int capacity, int bpe) :
+CacheDigest::CacheDigest(int aCapacity, int bpe) :
mask(nullptr),
mask_size(0),
capacity(0),
del_count(0)
{
assert(SQUID_MD5_DIGEST_LENGTH == 16); /* our hash functions rely on 16 byte keys */
- cacheDigestInit(this, capacity, bpe);
+ cacheDigestInit(this, aCapacity, bpe);
}
-static void
-cacheDigestClean(CacheDigest * cd)
+CacheDigest::~CacheDigest()
{
- assert(cd);
- xfree(cd->mask);
- cd->mask = NULL;
-}
-
-void
-cacheDigestDestroy(CacheDigest * cd)
-{
- assert(cd);
- cacheDigestClean(cd);
- delete cd;
+ xfree(mask);
}
CacheDigest *
cacheDigestChangeCap(CacheDigest * cd, int new_cap)
{
assert(cd);
- cacheDigestClean(cd);
- cacheDigestInit(cd, new_cap, cd->bits_per_entry);
+ safe_free(cd->mask);
+ cacheDigestInit(cd, new_cap, cd->bits_per_entry); // will re-init mask and mask_size
}
/* returns true if the key belongs to the digest */
MEMPROXY_CLASS(CacheDigest);
public:
CacheDigest(int capacity, int bpe);
+ ~CacheDigest();
public:
/* public, read-only */
int del_count; /* number of deletions performed so far */
};
-void cacheDigestDestroy(CacheDigest * cd);
CacheDigest *cacheDigestClone(const CacheDigest * cd);
void cacheDigestClear(CacheDigest * cd);
void cacheDigestChangeCap(CacheDigest * cd, int new_cap);
static time_t peerDigestIncDelay(const PeerDigest * pd);
static time_t peerDigestNewDelay(const StoreEntry * e);
static void peerDigestSetCheck(PeerDigest * pd, time_t delay);
-static void peerDigestClean(PeerDigest *);
static EVH peerDigestCheck;
static void peerDigestRequest(PeerDigest * pd);
static STCB peerDigestHandleReply;
pd->times.initialized = squid_curtime;
}
-static void
-peerDigestClean(PeerDigest * pd)
-{
- assert(pd);
-
- if (pd->cd)
- cacheDigestDestroy(pd->cd);
-
- pd->host.clean();
-}
-
CBDATA_CLASS_INIT(PeerDigest);
CBDATA_CLASS_INIT(DigestFetchState);
if (cbdataReferenceValidDone(peerTmp, &p))
peerNoteDigestGone((CachePeer *)p);
- peerDigestClean(pd);
+ delete pd->cd;
+ pd->host.clean();
delete pd;
}
pd->times.next_check = -1; /* never */
pd->flags.usable = 0;
- if (pd->cd) {
- cacheDigestDestroy(pd->cd);
- pd->cd = NULL;
- }
+ delete pd->cd
+ pd->cd = nullptr;
/* we do not destroy the pd itself to preserve its "history" and stats */
}
if (err) {
debugs(72, DBG_IMPORTANT, "" << (pcb_valid ? "temporary " : "" ) << "disabling (" << pd->req_result << ") digest from " << host);
- if (pd->cd) {
- cacheDigestDestroy(pd->cd);
- pd->cd = NULL;
- }
+ delete pd->cd;
+ pd->cd = nullptr;
pd->flags.usable = false;
debugs(72, 2, host << " digest changed size: " << cblock.mask_size <<
" -> " << pd->cd->mask_size);
freed_size = pd->cd->mask_size;
- cacheDigestDestroy(pd->cd);
- pd->cd = NULL;
+ delete pd->cd;
+ pd->cd = nullptr;
}
if (!pd->cd) {
{
Store::Root(NULL);
#if USE_CACHE_DIGESTS
-
- if (store_digest)
- cacheDigestDestroy(store_digest);
-
+ delete store_digest;
#endif
-
store_digest = NULL;
}
/* destroy the hash table itself */
hashFreeMemory(hash);
- if (cache->digest)
- cacheDigestDestroy(cache->digest);
-
+ delete cache->digest;
xfree(cache);
}
assert(cache);
fprintf(stderr, "%s: init-ing digest with %d entries\n", cache->name, cache->count);
- if (cache->digest)
- cacheDigestDestroy(cache->digest);
-
hash = cache->hash;
+ delete cache->digest;
cache->digest = new CacheDigest(cache->count + 1, 6);
if (!cache->count)
#include "CacheDigest.h"
CacheDigest::CacheDigest(int, int) {STUB}
-void cacheDigestDestroy(CacheDigest *) STUB
+CacheDigest::~CacheDigest() {STUB}
CacheDigest * cacheDigestClone(const CacheDigest *) STUB_RETVAL(NULL)
void cacheDigestClear(CacheDigest * ) STUB
void cacheDigestChangeCap(CacheDigest *,int) STUB