There are at least two cases of this, both currently annotated with FIXME: https://github.com/servo/servo/search?utf8=%E2%9C%93&q=TraitObject
Thanks for the heads up! jack. On Tue, Aug 26, 2014 at 4:14 PM, Nick Cameron <li...@ncameron.org> wrote: > For the next Rust upgrade you should be aware of a subtle breaking change - > the compiler's internal representation of trait objects has changed. > Previously trait objects were represented as a pair of pointer-to-vtable, > pointer-to-data. That order has been reveresed to pointer-to-data, > pointer-to-vtable (to make it uniform with pointers to slices). If you > transmute one of these fat pointers into a struct (or anything else, > assuming an ordering) and use its fields, you will get some really weird > bugs, possibly nowhere near the actual transmute. A quick look at the Servo > code indicates you are doing this. The correct thing to do is to transmute > to core::raw::TraitObject. > > To help find these evil transmutes, I added a lint (allow by default) - > TRANSMUTE_FAT_PTR - which will show you any instances where you transmute > to or from any fat pointer. There will be lots of false positives - where > you are transmuting to/from just to change the lifetime or mutability or > where you're already using the core::raw structs. > > Let me know if you have any questions about the change. > > Cheers, Nick > _______________________________________________ > dev-servo mailing list > dev-servo@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-servo _______________________________________________ dev-servo mailing list dev-servo@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-servo