]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Convert CacheDigest to MEMPROXY_CLASS
authorAmos Jeffries <squid3@treenet.co.nz>
Thu, 5 Nov 2015 12:55:45 +0000 (04:55 -0800)
committerAmos Jeffries <squid3@treenet.co.nz>
Thu, 5 Nov 2015 12:55:45 +0000 (04:55 -0800)
* Convert cacheDigestCreate to CacheDigest constructor

* Update cacheDigestDestroy to use delete operator

src/CacheDigest.cc
src/CacheDigest.h
src/mem/forward.h
src/mem/old_api.cc
src/peer_digest.cc
src/store_digest.cc
src/test_cache_digest.cc
src/tests/stub_CacheDigest.cc

index 79b890c41cde062cd3871799a384a8f2c06827a5..c2814ce802d7a12f796883c077e162f34f93f936 100644 (file)
@@ -49,13 +49,16 @@ cacheDigestInit(CacheDigest * cd, int capacity, int bpe)
            << cd->mask_size << " bytes");
 }
 
-CacheDigest *
-cacheDigestCreate(int capacity, int bpe)
+CacheDigest::CacheDigest(int capacity, int bpe) :
+        mask(nullptr),
+        mask_size(0),
+        capacity(0),
+        bits_per_entry(0),
+        count(0),
+        del_count(0)
 {
-    CacheDigest *cd = (CacheDigest *)memAllocate(MEM_CACHE_DIGEST);
     assert(SQUID_MD5_DIGEST_LENGTH == 16);  /* our hash functions rely on 16 byte keys */
-    cacheDigestInit(cd, capacity, bpe);
-    return cd;
+    cacheDigestInit(this, capacity, bpe);
 }
 
 static void
@@ -71,7 +74,7 @@ cacheDigestDestroy(CacheDigest * cd)
 {
     assert(cd);
     cacheDigestClean(cd);
-    memFree(cd, MEM_CACHE_DIGEST);
+    delete cd;
 }
 
 CacheDigest *
@@ -79,7 +82,7 @@ cacheDigestClone(const CacheDigest * cd)
 {
     CacheDigest *clone;
     assert(cd);
-    clone = cacheDigestCreate(cd->capacity, cd->bits_per_entry);
+    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);
index 14f928f2a8ed0ab0064ea6419a8d22d314e3b83f..b71c64a4ccc38765816daa098b149056fdc1e799 100644 (file)
 #ifndef SQUID_CACHEDIGEST_H_
 #define SQUID_CACHEDIGEST_H_
 
+#include "mem/forward.h"
 #include "store_key_md5.h"
 
 class CacheDigestGuessStats;
 class StoreEntry;
 
-// currently a POD
 class CacheDigest
 {
+    MEMPROXY_CLASS(CacheDigest);
+public:
+    CacheDigest(int capacity, int bpe);
+
 public:
     /* public, read-only */
     char *mask;         /* bit mask */
@@ -29,7 +33,6 @@ public:
     int del_count;      /* number of deletions performed so far */
 };
 
-CacheDigest *cacheDigestCreate(int capacity, int bpe);
 void cacheDigestDestroy(CacheDigest * cd);
 CacheDigest *cacheDigestClone(const CacheDigest * cd);
 void cacheDigestClear(CacheDigest * cd);
index dcabaf6afb45b8f3baf1959cba5604e2e463b134..a43425d4ba26c1ce5a00d084b0ca92a9677b1337 100644 (file)
@@ -46,9 +46,6 @@ typedef enum {
     MEM_64K_BUF,
     MEM_ACL_DENY_INFO_LIST,
     MEM_ACL_NAME_LIST,
-#if USE_CACHE_DIGESTS
-    MEM_CACHE_DIGEST,
-#endif
     MEM_CLIENT_INFO,
     MEM_LINK_LIST,
     MEM_DLINK_NODE,
index 99a2489e0ddd09629b55a16eba2146fce48a6fed..a0f864cfade5cf7381a455853ad7cd0580ee0bc6 100644 (file)
@@ -428,11 +428,6 @@ Mem::Init(void)
     memDataInit(MEM_ACL_DENY_INFO_LIST, "AclDenyInfoList",
                 sizeof(AclDenyInfoList), 0);
     memDataInit(MEM_ACL_NAME_LIST, "acl_name_list", sizeof(AclNameList), 0);
-#if USE_CACHE_DIGESTS
-
-    memDataInit(MEM_CACHE_DIGEST, "CacheDigest", sizeof(CacheDigest), 0);
-#endif
-
     memDataInit(MEM_LINK_LIST, "link_list", sizeof(link_list), 10);
     memDataInit(MEM_DLINK_NODE, "dlink_node", sizeof(dlink_node), 10);
     memDataInit(MEM_DREAD_CTRL, "dread_ctrl", sizeof(dread_ctrl), 0);
index 97cfbf1ae4aaf9d936b8412cbe9b4217c5472340..1ce8857e4f872280e2731ba7d4703a16c8390137 100644 (file)
@@ -1022,7 +1022,7 @@ peerDigestSetCBlock(PeerDigest * pd, const char *buf)
     if (!pd->cd) {
         debugs(72, 2, "creating " << host << " digest; size: " << cblock.mask_size << " (" <<
                std::showpos <<  (int) (cblock.mask_size - freed_size) << ") bytes");
-        pd->cd = cacheDigestCreate(cblock.capacity, cblock.bits_per_entry);
+        pd->cd = new CacheDigest(cblock.capacity, cblock.bits_per_entry);
 
         if (cblock.mask_size >= freed_size)
             statCounter.cd.memory += (cblock.mask_size - freed_size);
index db7b2d6356965d3edaf37dbdce8a6b7ddcf504d2..a9bf1402861e4bfeebc2fc3f6d7ef2a12f6cd227 100644 (file)
@@ -107,7 +107,7 @@ storeDigestInit(void)
         return;
     }
 
-    store_digest = cacheDigestCreate(cap, Config.digest.bits_per_entry);
+    store_digest = new CacheDigest(cap, Config.digest.bits_per_entry);
     debugs(71, DBG_IMPORTANT, "Local cache digest enabled; rebuild/rewrite every " <<
            (int) Config.digest.rebuild_period << "/" <<
            (int) Config.digest.rewrite_period << " sec");
index b67608832357635ff642a0a99b9f18dc16fb8a19..c10f48d0bba4915ed26119ca69fd33c42242584c 100644 (file)
@@ -256,7 +256,7 @@ cacheResetDigest(Cache * cache)
 
     hash = cache->hash;
 
-    cache->digest = cacheDigestCreate(cache->count + 1, 6);
+    cache->digest = new CacheDigest(cache->count + 1, 6);
 
     if (!cache->count)
         return;
index d808a2c81be024bc73d077476867fb3fe68dd128..fca5aff55de0332ea67fca814ced6cb0a4648054 100644 (file)
@@ -16,7 +16,8 @@ class CacheDigest;
 class CacheDigestGuessStats;
 class StoreEntry;
 
-CacheDigest * cacheDigestCreate(int, int) STUB_RETVAL(NULL)
+#include "CacheDigest.h"
+CacheDigest::CacheDigest(int, int) {STUB}
 void cacheDigestDestroy(CacheDigest *) STUB
 CacheDigest * cacheDigestClone(const CacheDigest *) STUB_RETVAL(NULL)
 void cacheDigestClear(CacheDigest * ) STUB