i think the memory model is fixed now? at least until arrays....

This commit is contained in:
Pat Hickey
2020-01-27 20:21:53 -08:00
parent ec456e9e50
commit c780421c28
5 changed files with 105 additions and 53 deletions

View File

@@ -36,22 +36,20 @@ pub mod test {
*a_better_excuse_ref = a_lamer_excuse;
// Read ptr value from mutable ptr:
let mut one_layer_down: ::memory::GuestRefMut<::memory::GuestPtr<types::Excuse>> =
two_layers_of_excuses.as_ref_mut().map_err(|e| {
let one_layer_down: ::memory::GuestPtr<types::Excuse> =
two_layers_of_excuses.read_ptr_from_guest().map_err(|e| {
eprintln!("one_layer_down error: {}", e);
types::Errno::InvalidArg
})?;
// Read enum value from that ptr:
let two_layers_down: ::memory::GuestRef<types::Excuse> =
one_layer_down.from_guest().map_err(|e| {
eprintln!("two_layers_down error: {}", e);
types::Errno::InvalidArg
})?;
let two_layers_down: types::Excuse = *one_layer_down.as_ref().map_err(|e| {
eprintln!("two_layers_down error: {}", e);
types::Errno::InvalidArg
})?;
// Write ptr value to mutable ptr:
// FIXME this is still impossible...
// two_layers_of_excuses.write_guest(&a_better_excuse_by_reference)
two_layers_of_excuses.write_ptr_to_guest(&a_better_excuse_by_reference.as_immut());
println!(
"BAZ: excuse: {:?}, better excuse: {:?}, lamer excuse: {:?}, two layers down: {:?}",