From 35a95818c3a4ed763d2e8fa56c69062dcb521344 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Mon, 14 Apr 2025 17:31:36 +0200 Subject: fixed predicate for find_as so it works with recent versions of EASTL --- src/zenstore/cache/cachedisklayer.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/zenstore/cache/cachedisklayer.cpp') diff --git a/src/zenstore/cache/cachedisklayer.cpp b/src/zenstore/cache/cachedisklayer.cpp index e548b4b30..4f72a711a 100644 --- a/src/zenstore/cache/cachedisklayer.cpp +++ b/src/zenstore/cache/cachedisklayer.cpp @@ -3571,6 +3571,20 @@ ZenCacheDiskLayer::~ZenCacheDiskLayer() } } +template +struct equal_to_2 +{ + constexpr bool operator()(const T& a, const U& b) const { return a == b; } + + template, eastl::remove_const_t>>> + constexpr bool operator()(const U& b, const T& a) const + { + return b == a; + } +}; + ZenCacheDiskLayer::CacheBucket* ZenCacheDiskLayer::GetOrCreateBucket(std::string_view InBucket) { @@ -3578,7 +3592,7 @@ ZenCacheDiskLayer::GetOrCreateBucket(std::string_view InBucket) { RwLock::SharedLockScope SharedLock(m_Lock); - if (auto It = m_Buckets.find(std::string(InBucket)); + if (auto It = m_Buckets.find_as(InBucket, std::hash(), equal_to_2()); It != m_Buckets.end()) { return It->second.get(); @@ -3590,7 +3604,7 @@ ZenCacheDiskLayer::GetOrCreateBucket(std::string_view InBucket) std::unique_ptr Bucket(std::make_unique(m_Gc, m_TotalMemCachedSize, InBucket, m_Configuration.BucketConfig)); RwLock::ExclusiveLockScope Lock(m_Lock); - if (auto It = m_Buckets.find(std::string(InBucket)); + if (auto It = m_Buckets.find_as(InBucket, std::hash(), equal_to_2()); It != m_Buckets.end()) { return It->second.get(); -- cgit v1.2.3