about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-06-10 18:07:07 -0700
committerbors <bors@rust-lang.org>2014-06-10 18:07:07 -0700
commitf92a8facf90b40a483032cedb98decc8c41bde51 (patch)
treed92fd19592134de268eff55a380af07fe8cb02df /src/rustllvm/RustWrapper.cpp
parentb1302f9c4f6619bf83fff39b305b990d8f628eb7 (diff)
parent47b72e388d6f2207c977fb6b06399717bca96a77 (diff)
downloadrust-f92a8facf90b40a483032cedb98decc8c41bde51.tar.gz
rust-f92a8facf90b40a483032cedb98decc8c41bde51.zip
auto merge of #14768 : riccieri/rust/detransmute-arena, r=alexcrichton
**Update**

I've reimplemented this using `Cell` and `RefCell`, as suggested by @alexcrichton. By taking care with the duration of the borrows, I was able to maintain the recursive allocation feature (now covered by a test) without the use of `Unsafe`, and without breaking the non-aliasing `&mut` invariant.

**Original**

Changes both `Arena` and `TypedArena` to contain an inner struct wrapped in a `Unsafe`, and change field access to go through those instead of transmuting `&self` to `&mut self`.

Part of #13933
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions