Skip to content

Commit 93bd416

Browse files
committed
add is_fuel_metering_enabled convenience func
1 parent b889953 commit 93bd416

File tree

1 file changed

+10
-5
lines changed
  • crates/wasmi/src/engine/translator/translator2/stack

1 file changed

+10
-5
lines changed

crates/wasmi/src/engine/translator/translator2/stack/mod.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,16 @@ impl Stack {
9595
self.operands.trunc(height);
9696
}
9797

98+
/// Returns `true` is fuel metering is enabled for the associated [`Engine`].
99+
fn is_fuel_metering_enabled(&self) -> bool {
100+
self.engine.config().get_consume_fuel()
101+
}
102+
98103
/// Pushes a Wasm `block` onto the [`Stack`].
99104
///
100105
/// # Note
101106
///
102-
/// If `consume_fuel` is `None` and fuel metering is enabled this will infer
107+
/// If `consume_fuel` is `None` and fuel metering is enabled this will inherit
103108
/// the [`Instruction::ConsumeFuel`] from the last control frame on the [`Stack`].
104109
///
105110
/// # Errors
@@ -113,7 +118,7 @@ impl Stack {
113118
) -> Result<(), Error> {
114119
let len_params = usize::from(ty.len_params(&self.engine));
115120
let block_height = self.height() - len_params;
116-
let fuel_metering = self.engine.config().get_consume_fuel();
121+
let fuel_metering = self.is_fuel_metering_enabled();
117122
let consume_fuel = match consume_fuel {
118123
None if fuel_metering => {
119124
let consume_instr = self
@@ -151,7 +156,7 @@ impl Stack {
151156
consume_fuel: Option<Instr>,
152157
mut f: impl FnMut(Operand) -> Result<(), Error>,
153158
) -> Result<(), Error> {
154-
debug_assert!(self.engine.config().get_consume_fuel() == consume_fuel.is_some());
159+
debug_assert!(self.is_fuel_metering_enabled() == consume_fuel.is_some());
155160
let len_params = usize::from(ty.len_params(&self.engine));
156161
let block_height = self.height() - len_params;
157162
for depth in 0..block_height {
@@ -180,7 +185,7 @@ impl Stack {
180185
reachability: IfReachability,
181186
consume_fuel: Option<Instr>,
182187
) -> Result<(), Error> {
183-
debug_assert!(self.engine.config().get_consume_fuel() == consume_fuel.is_some());
188+
debug_assert!(self.is_fuel_metering_enabled() == consume_fuel.is_some());
184189
let len_params = usize::from(ty.len_params(&self.engine));
185190
let block_height = self.height() - len_params;
186191
let else_operands = self.operands.peek(len_params);
@@ -213,7 +218,7 @@ impl Stack {
213218
is_end_of_then_reachable: bool,
214219
consume_fuel: Option<Instr>,
215220
) -> Result<(), Error> {
216-
debug_assert!(self.engine.config().get_consume_fuel() == consume_fuel.is_some());
221+
debug_assert!(self.is_fuel_metering_enabled() == consume_fuel.is_some());
217222
let len_params = usize::from(ty.len_params(&self.engine));
218223
let block_height = self.height() - len_params;
219224
let else_operands = self.controls.push_else(

0 commit comments

Comments
 (0)