about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2016-01-14 04:22:20 +0530
committerManish Goregaokar <manishsmail@gmail.com>2016-01-14 11:04:43 +0530
commit1246f43bf9d9c21edc65bb6d26fc3ef883dd9f40 (patch)
treed7a502871e586d7cf4dbd5bc8f0ef32ddbe7ef0e /src/rustllvm/RustWrapper.cpp
parente51de045ef5fd2e6878b2e770a8deb7abcf64691 (diff)
parenta8514d3ecca6bd404e2d7eff4deef31e3d00dad8 (diff)
downloadrust-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