@@ -23,7 +23,6 @@ auto bench(MockedHost& host,
2323 evmc::VM& vm,
2424 evmc_revision rev,
2525 const evmc_message& msg,
26- bytes_view code,
2726 const evmc::Result& expected_result,
2827 std::ostream& out)
2928{
@@ -37,7 +36,7 @@ auto bench(MockedHost& host,
3736
3837 // Probe run: execute once again the already warm code to estimate a single run time.
3938 const auto probe_start = clock::now ();
40- const auto result = vm.execute (host, rev, msg, code. data (), code. size () );
39+ const auto result = vm.execute (host, rev, msg);
4140 const auto bench_start = clock::now ();
4241 const auto probe_time = bench_start - probe_start;
4342
@@ -50,7 +49,7 @@ auto bench(MockedHost& host,
5049 // Benchmark loop.
5150 const auto num_iterations = std::max (static_cast <int >(target_bench_time / probe_time), 1 );
5251 for (int i = 0 ; i < num_iterations; ++i)
53- vm.execute (host, rev, msg, code. data (), code. size () );
52+ vm.execute (host, rev, msg);
5453 const auto bench_time = (clock::now () - bench_start) / num_iterations;
5554
5655 out << " Time: " << std::chrono::duration_cast<unit>(bench_time).count () << unit_name
@@ -77,16 +76,19 @@ int run(VM& vm,
7776 msg.gas = gas;
7877 msg.input_data = input.data ();
7978 msg.input_size = input.size ();
79+ msg.code = code.data ();
80+ msg.code_size = code.size ();
8081
81- bytes_view exec_code = code;
8282 if (create)
8383 {
8484 evmc_message create_msg{};
8585 create_msg.kind = EVMC_CREATE;
8686 create_msg.recipient = create_address;
8787 create_msg.gas = create_gas;
88+ create_msg.code = code.data ();
89+ create_msg.code_size = code.size ();
8890
89- const auto create_result = vm.execute (host, rev, create_msg, code. data (), code. size () );
91+ const auto create_result = vm.execute (host, rev, create_msg);
9092 if (create_result.status_code != EVMC_SUCCESS)
9193 {
9294 out << " Contract creation failed: " << create_result.status_code << " \n " ;
@@ -97,14 +99,15 @@ int run(VM& vm,
9799 created_account.code = bytes (create_result.output_data , create_result.output_size );
98100
99101 msg.recipient = create_address;
100- exec_code = created_account.code ;
102+ msg.code = created_account.code .data ();
103+ msg.code_size = created_account.code .size ();
101104 }
102105 out << " \n " ;
103106
104- const auto result = vm.execute (host, rev, msg, exec_code. data (), exec_code. size () );
107+ const auto result = vm.execute (host, rev, msg);
105108
106109 if (bench)
107- tooling::bench (host, vm, rev, msg, exec_code, result, out);
110+ tooling::bench (host, vm, rev, msg, result, out);
108111
109112 const auto gas_used = msg.gas - result.gas_left ;
110113 out << " Result: " << result.status_code << " \n Gas used: " << gas_used << " \n " ;
0 commit comments