You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Delete `StoreOpaque::traitobj_mut`
This was a fundamentally unsound function because it is widening a
mutable borrow to encompass more than it originally contained. Removal
of its usage falls into a few buckets here:
* Many instances of `store.0.traitobj_mut()` were starting from a
`&mut StoreInner<T>`, going to `&mut StoreOpaque`, then going back to
`&mut dyn VMStore`. These are replaced with `store.0` as
`&mut StoreInner<T>` directly coerces into `&mut dyn VMStore`.
* Some fiber-related helpers were updated to take any store-opaque-thing
which encapsulates the ability to start/resume a borrow with a part of
the store, but you only get that part of the store during the fiber
itself. This means there's no widening necessary.
* Some methods previously taking `&mut StoreOpaque` are now
appropriately widened to `&mut dyn VMStore`.
This all enables full deletion of this function which prevents
accidentally ever tripping over its unsound-ness.
* Fix configured build
* Another fix for a configured build
* Fix a warning
* Don't hold `VMStore` live over await points
* Review comments
* Move `AsStoreOpaque` to `store.rs` and use it in GC
* Fix configured build
* Switch lint annotation
0 commit comments