From: Amos Jeffries Date: Fri, 9 Dec 2022 21:54:31 +0000 (+0000) Subject: Update LruNode to MEMPROXY_CLASS (#1206) X-Git-Tag: SQUID_6_0_1~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=232bd1affc6fa484f2575bf86fa77878ca01cf95;p=thirdparty%2Fsquid.git Update LruNode to MEMPROXY_CLASS (#1206) --- diff --git a/src/repl/lru/store_repl_lru.cc b/src/repl/lru/store_repl_lru.cc index 72892130a2..70a85a9de8 100644 --- a/src/repl/lru/store_repl_lru.cc +++ b/src/repl/lru/store_repl_lru.cc @@ -12,11 +12,6 @@ #include "MemObject.h" #include "Store.h" -/* because LruNode use explicit memory alloc()/freeOne() calls. - * XXX: convert to MEMPROXY_CLASS() API - */ -#include "mem/Pool.h" - REMOVALPOLICYCREATE createRemovalPolicy_lru; struct LruPolicyData { @@ -65,16 +60,17 @@ LruPolicyData::setPolicyNode (StoreEntry *entry, void *value) const } } -typedef struct _LruNode LruNode; +class LruNode +{ + MEMPROXY_CLASS(LruNode); -struct _LruNode { +public: /* Note: the dlink_node MUST be the first member of the LruNode * structure. This member is later pointer typecasted to LruNode *. */ dlink_node node; }; -static Mem::Allocator *lru_node_pool = nullptr; static int nr_lru_policies = 0; static void @@ -83,7 +79,7 @@ lru_add(RemovalPolicy * policy, StoreEntry * entry, RemovalPolicyNode * node) LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node; assert(!node->data); - node->data = lru_node = (LruNode *)lru_node_pool->alloc(); + node->data = lru_node = new LruNode; dlinkAddTail(entry, &lru_node->node, &lru->list); lru->count += 1; @@ -114,7 +110,7 @@ lru_remove(RemovalPolicy * policy, StoreEntry * entry, RemovalPolicyNode * node) dlinkDelete(&lru_node->node, &lru->list); - lru_node_pool->freeOne(lru_node); + delete lru_node; lru->count -= 1; } @@ -228,7 +224,7 @@ try_again: goto try_again; } - lru_node_pool->freeOne(lru_node); + delete lru_node; lru->count -= 1; lru->setPolicyNode(entry, nullptr); return entry; @@ -305,13 +301,6 @@ createRemovalPolicy_lru(wordlist * args) LruPolicyData *lru_data; /* no arguments expected or understood */ assert(!args); - /* Initialize */ - - if (!lru_node_pool) { - /* Must be chunked */ - lru_node_pool = memPoolCreate("LRU policy node", sizeof(LruNode)); - lru_node_pool->setChunkSize(512 * 1024); - } /* Allocate the needed structures */ lru_data = (LruPolicyData *)xcalloc(1, sizeof(*lru_data));