From 89951cf7fb5b59dd78cd064b3fb209a33e9fa6c5 Mon Sep 17 00:00:00 2001 From: regnat Date: Thu, 3 Jun 2021 10:52:43 +0200 Subject: [PATCH] Extract a Value method to set the eval cache --- src/libexpr/eval.cc | 7 +++++++ src/libexpr/value.hh | 1 + 2 files changed, 8 insertions(+) diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index debdf4e42..11fda5dcb 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -1813,6 +1813,13 @@ ValueCache & Value::getEvalCache() ValueCache ValueCache::empty = ValueCache(nullptr); +void Value::setEvalCache(ValueCache & newCache) +{ + if (internalType == tAttrs) { + attrs->eval_cache = newCache; + } +} + string EvalState::forceString(Value & v, PathSet & context, const Pos & pos) { string s = forceString(v, pos); diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh index 740a19f0c..53a2e2cdd 100644 --- a/src/libexpr/value.hh +++ b/src/libexpr/value.hh @@ -353,6 +353,7 @@ public: std::vector> getContext(); ValueCache & getEvalCache(); + void setEvalCache(ValueCache &); };