From bdff99c853431b89b56ac9a71dc73a65bc5515df Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 19 May 2017 09:39:41 -0700 Subject: [core] Eliminate round-trip through Value in CameraFunction::evaluate --- include/mbgl/style/function/interval_stops.hpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'include/mbgl/style/function/interval_stops.hpp') diff --git a/include/mbgl/style/function/interval_stops.hpp b/include/mbgl/style/function/interval_stops.hpp index 50f2b48453..a482a6081c 100644 --- a/include/mbgl/style/function/interval_stops.hpp +++ b/include/mbgl/style/function/interval_stops.hpp @@ -18,18 +18,13 @@ public: : stops(std::move(stops_)) { } - optional evaluate(const Value& value) const { + optional evaluate(float z) const { if (stops.empty()) { assert(false); return {}; } - optional z = numericValue(value); - if (!z) { - return {}; - } - - auto it = stops.upper_bound(*z); + auto it = stops.upper_bound(z); if (it == stops.end()) { return stops.rbegin()->second; } else if (it == stops.begin()) { @@ -39,6 +34,14 @@ public: } } + optional evaluate(const Value& value) const { + optional z = numericValue(value); + if (!z) { + return {}; + } + return evaluate(*z); + } + friend bool operator==(const IntervalStops& lhs, const IntervalStops& rhs) { return lhs.stops == rhs.stops; -- cgit v1.2.1