From 4eef4867b8063188efeb4785a1f0fb34fa9f516b Mon Sep 17 00:00:00 2001 From: Shahriar Rouf Date: Wed, 3 Dec 2025 02:51:25 -0800 Subject: [PATCH] Optimize `google::api::expr::Unparse` by removing unnecessary map copying. `auto var = FunctionReturningConstRef();` causes a copy while `const auto& var = FunctionReturningConstRef();` does not cause any copies. Example: https://godbolt.org/z/37hETqc3q PiperOrigin-RevId: 839669874 --- common/operators.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/common/operators.cc b/common/operators.cc index 56af997df..79a508f7e 100644 --- a/common/operators.cc +++ b/common/operators.cc @@ -166,7 +166,7 @@ const absl::string_view CelOperator::OPT_INDEX = "_[?_]"; const absl::string_view CelOperator::OPT_SELECT = "_?._"; int LookupPrecedence(const std::string& op) { - auto precs = Precedences(); + const auto& precs = Precedences(); auto p = precs.find(op); if (p != precs.end()) { return p->second; @@ -175,7 +175,7 @@ int LookupPrecedence(const std::string& op) { } absl::optional LookupUnaryOperator(const std::string& op) { - auto unary_ops = UnaryOperators(); + const auto& unary_ops = UnaryOperators(); auto o = unary_ops.find(op); if (o == unary_ops.end()) { return absl::optional(); @@ -184,7 +184,7 @@ absl::optional LookupUnaryOperator(const std::string& op) { } absl::optional LookupBinaryOperator(const std::string& op) { - auto bin_ops = BinaryOperators(); + const auto& bin_ops = BinaryOperators(); auto o = bin_ops.find(op); if (o == bin_ops.end()) { return absl::optional(); @@ -193,7 +193,7 @@ absl::optional LookupBinaryOperator(const std::string& op) { } absl::optional LookupOperator(const std::string& op) { - auto ops = Operators(); + const auto& ops = Operators(); auto o = ops.find(op); if (o == ops.end()) { return absl::optional(); @@ -202,7 +202,7 @@ absl::optional LookupOperator(const std::string& op) { } absl::optional ReverseLookupOperator(const std::string& op) { - auto rev_ops = ReverseOperators(); + const auto& rev_ops = ReverseOperators(); auto o = rev_ops.find(op); if (o == rev_ops.end()) { return absl::optional();