| 53 | } |
| 54 | |
| 55 | absl::Status EnableConstantFoldingImpl( |
| 56 | RuntimeBuilder& builder, absl_nullable std::shared_ptr<google::protobuf::Arena> arena, |
| 57 | absl_nullable std::shared_ptr<google::protobuf::MessageFactory> message_factory) { |
| 58 | CEL_ASSIGN_OR_RETURN(RuntimeImpl* absl_nonnull runtime_impl, |
| 59 | RuntimeImplFromBuilder(builder)); |
| 60 | if (arena != nullptr) { |
| 61 | runtime_impl->environment().KeepAlive(arena); |
| 62 | } |
| 63 | if (message_factory != nullptr) { |
| 64 | runtime_impl->environment().KeepAlive(message_factory); |
| 65 | } |
| 66 | runtime_impl->expr_builder().AddProgramOptimizer( |
| 67 | runtime_internal::CreateConstantFoldingOptimizer( |
| 68 | std::move(arena), std::move(message_factory))); |
| 69 | return absl::OkStatus(); |
| 70 | } |
| 71 | |
| 72 | } // namespace |
| 73 |
no test coverage detected