diff --git a/public/tier1/keyvalues3.h b/public/tier1/keyvalues3.h index 7d9f7bcf..d45ac4d2 100644 --- a/public/tier1/keyvalues3.h +++ b/public/tier1/keyvalues3.h @@ -1612,8 +1612,11 @@ inline void CKeyValues3ContextBase::NodeList::Purge() template inline void CKeyValues3Context::PurgeClusterNodeChain( ClusterNodeChain &cluster_node ) { - for(auto node = cluster_node.m_pTail; node; node = node->GetPrev()) + CLUSTER *prev = nullptr; + for(auto node = cluster_node.m_pTail; node; node = prev) { + prev = node->GetPrev(); + if(node->IsAllocatedOnHeap()) { node->Purge();