diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2016-01-14 04:22:20 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2016-01-14 11:04:43 +0530 |
| commit | 1246f43bf9d9c21edc65bb6d26fc3ef883dd9f40 (patch) | |
| tree | d7a502871e586d7cf4dbd5bc8f0ef32ddbe7ef0e /src/rustllvm/RustWrapper.cpp | |
| parent | e51de045ef5fd2e6878b2e770a8deb7abcf64691 (diff) | |
| parent | a8514d3ecca6bd404e2d7eff4deef31e3d00dad8 (diff) | |
| download | rust-1246f43bf9d9c21edc65bb6d26fc3ef883dd9f40.tar.gz rust-1246f43bf9d9c21edc65bb6d26fc3ef883dd9f40.zip | |
Rollup merge of #30863 - jseyfried:no_rc, r=eddyb
Use arena allocation instead of reference counting for `Module`s to fix memory leaks from `Rc` cycles.
A module references its module children and its import resolutions, and an import resolution references the module defining the imported name, so there is a cycle whenever a module imports something from an ancestor module.
For example,
```rust
mod foo { // `foo` references `bar`.
fn baz() {}
mod bar { // `bar` references the import.
use foo::baz; // The import references `foo`.
}
}
```
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
