Skip to content

Commit 89c3002

Browse files
jckingcopybara-github
authored andcommitted
Avoid pointer indirection to access stacks
PiperOrigin-RevId: 741615160
1 parent 1c391a5 commit 89c3002

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

eval/eval/evaluator_core.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,8 @@ class ExecutionFrame : public ExecutionFrameBase {
287287
state.comprehension_slots()),
288288
pc_(0UL),
289289
execution_path_(flat),
290-
state_(state),
290+
value_stack_(&state.value_stack()),
291+
iterator_stack_(&state.iterator_stack()),
291292
subexpressions_() {}
292293

293294
ExecutionFrame(absl::Span<const ExecutionPathView> subexpressions,
@@ -301,7 +302,8 @@ class ExecutionFrame : public ExecutionFrameBase {
301302
state.comprehension_slots()),
302303
pc_(0UL),
303304
execution_path_(subexpressions[0]),
304-
state_(state),
305+
value_stack_(&state.value_stack()),
306+
iterator_stack_(&state.iterator_stack()),
305307
subexpressions_(subexpressions) {
306308
ABSL_DCHECK(!subexpressions.empty());
307309
}
@@ -353,10 +355,10 @@ class ExecutionFrame : public ExecutionFrameBase {
353355
execution_path_ = subexpression;
354356
}
355357

356-
EvaluatorStack& value_stack() { return state_.value_stack(); }
358+
EvaluatorStack& value_stack() { return *value_stack_; }
357359

358360
cel::runtime_internal::IteratorStack& iterator_stack() {
359-
return state_.iterator_stack();
361+
return *iterator_stack_;
360362
}
361363

362364
bool enable_attribute_tracking() const {
@@ -396,7 +398,8 @@ class ExecutionFrame : public ExecutionFrameBase {
396398

397399
size_t pc_; // pc_ - Program Counter. Current position on execution path.
398400
ExecutionPathView execution_path_;
399-
FlatExpressionEvaluatorState& state_;
401+
absl::Nonnull<EvaluatorStack*> const value_stack_;
402+
absl::Nonnull<cel::runtime_internal::IteratorStack*> const iterator_stack_;
400403
absl::Span<const ExecutionPathView> subexpressions_;
401404
std::vector<SubFrame> call_stack_;
402405
};

0 commit comments

Comments
 (0)