Skip to content

Commit 47a79d3

Browse files
Merge pull request #915 from multiversx/vm-hooks-refactor-gen
vmHooks refactor, mutable self generation
2 parents 2f20197 + 5a4a5c6 commit 47a79d3

File tree

4 files changed

+9
-8
lines changed

4 files changed

+9
-8
lines changed

vmhost/vmhooks/generate/eiGenWriteRustCapiVMHooks.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ impl CapiVMHooks {
2828
}
2929
}
3030
31-
fn convert_mem_ptr(&self, mem_ptr: MemPtr) -> i32 {
31+
fn convert_mem_ptr(&mut self, mem_ptr: MemPtr) -> i32 {
3232
mem_ptr as i32
3333
}
3434
35-
fn convert_mem_length(&self, mem_length: MemLength) -> i32 {
35+
fn convert_mem_length(&mut self, mem_length: MemLength) -> i32 {
3636
mem_length as i32
3737
}
3838
}
@@ -49,7 +49,7 @@ impl multiversx_chain_vm_executor::VMHooks for CapiVMHooks {
4949
"\n fn %s%s {\n",
5050
snakeCase(funcMetadata.Name),
5151
writeRustFnDeclarationArguments(
52-
"&self",
52+
"&mut self",
5353
funcMetadata,
5454
rustVMHooksType,
5555
),

vmhost/vmhooks/generate/eiGenWriteRustCapiVMHooksPointers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use std::ffi::c_void;
1111
1212
#[repr(C)]
1313
#[derive(Clone)]
14+
#[allow(non_camel_case_types)]
1415
#[rustfmt::skip]
1516
pub struct vm_exec_vm_hook_c_func_pointers {`)
1617

vmhost/vmhooks/generate/eiGenWriteRustVMHooksTrait.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use crate::{MemLength, MemPtr};
1414
1515
#[rustfmt::skip]
1616
#[allow(clippy::too_many_arguments)]
17-
pub trait VMHooks: core::fmt::Debug + 'static {
17+
pub trait VMHooks: core::fmt::Debug {
1818
fn set_vm_hooks_ptr(&mut self, vm_hooks_ptr: *mut c_void);
1919
2020
`)
@@ -24,7 +24,7 @@ pub trait VMHooks: core::fmt::Debug + 'static {
2424
" fn %s%s;\n",
2525
snakeCase(funcMetadata.Name),
2626
writeRustFnDeclarationArguments(
27-
"&self",
27+
"&mut self",
2828
funcMetadata,
2929
rustVMHooksType,
3030
),
@@ -54,7 +54,7 @@ impl VMHooks for VMHooksDefault {
5454
" fn %s%s {\n",
5555
snakeCase(funcMetadata.Name),
5656
writeRustFnDeclarationArguments(
57-
"&self",
57+
"&mut self",
5858
funcMetadata,
5959
rustVMHooksType,
6060
),

vmhost/vmhooks/generate/eiGenWriteRustWasmerProdImports.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use crate::wasmer_vm_hooks::VMHooksWrapper;
2929
))
3030

3131
out.WriteString(" {\n")
32-
out.WriteString(fmt.Sprintf(" env.vm_hooks.%s(", snakeCase(funcMetadata.Name)))
32+
out.WriteString(fmt.Sprintf(" env.with_vm_hooks(|vh| vh.%s(", snakeCase(funcMetadata.Name)))
3333

3434
for i, arg := range funcMetadata.Arguments {
3535
if i > 0 {
@@ -38,7 +38,7 @@ use crate::wasmer_vm_hooks::VMHooksWrapper;
3838
out.WriteString(rustWasmerProdConvertArg(arg))
3939
}
4040

41-
out.WriteString(")\n}\n\n")
41+
out.WriteString("))\n}\n\n")
4242
}
4343

4444
out.WriteString(`pub fn generate_import_object(store: &Store, env: &VMHooksWrapper) -> ImportObject {

0 commit comments

Comments
 (0)