waker context: Fix size and align of raw vtable
This commit is contained in:
@@ -98,6 +98,7 @@ Let's explain this in code instead of words by implementing our own trait
|
||||
object from these parts:
|
||||
|
||||
```rust
|
||||
# use std::mem::{align_of, size_of};
|
||||
// A reference to a trait object is a fat pointer: (data_ptr, vtable_ptr)
|
||||
trait Test {
|
||||
fn add(&self) -> i32;
|
||||
@@ -139,8 +140,8 @@ fn main() {
|
||||
// length of the array is encoded in the array itself as the second value.
|
||||
let vtable = vec![
|
||||
0, // pointer to `Drop` (which we're not implementing here)
|
||||
6, // length of vtable
|
||||
8, // alignment
|
||||
size_of::<Data>(), // length of data
|
||||
align_of::<Data>(), // alignment of data
|
||||
|
||||
// we need to make sure we add these in the same order as defined in the Trait.
|
||||
add as usize, // function pointer - try changing the order of `add`
|
||||
|
||||
Reference in New Issue
Block a user