From 80dddb675276ec1cb28525e481c0c6bedb886145 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 23 Jul 2021 09:16:54 +0200 Subject: Merge pull request #2787 from rouault/vgrid_perf_improvements GeoTIFF grid reading: perf improvements (fixes #2785) --- include/proj/internal/lru_cache.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include') diff --git a/include/proj/internal/lru_cache.hpp b/include/proj/internal/lru_cache.hpp index b7aff6b9..b2e997b3 100644 --- a/include/proj/internal/lru_cache.hpp +++ b/include/proj/internal/lru_cache.hpp @@ -160,6 +160,21 @@ class Cache { keys_.splice(keys_.begin(), keys_, iter->second); return iter->second->value; } + + /** + * The const reference returned here is only + * guaranteed to be valid till the next insert/delete + */ + const Value* getPtr(const Key& k) { + Guard g(lock_); + const auto iter = cache_.find(k); + if (iter == cache_.end()) { + return nullptr; + } + keys_.splice(keys_.begin(), keys_, iter->second); + return &(iter->second->value); + } + /** * returns a copy of the stored object (if found) */ -- cgit v1.2.3