Skip to content

Commit d1ee029

Browse files
committed
---
yaml --- r: 97383 b: refs/heads/dist-snap c: 522a68d h: refs/heads/master i: 97381: 62fee36 97379: 1c11cb3 97375: ac361ad v: v3
1 parent 990767f commit d1ee029

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 8ed6f3e78ffacab3e9beabde0016c9d66a8e3f13
9+
refs/heads/dist-snap: 522a68d5bcf8129621cc230b32b4d221c4200198
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libsyntax/ast_util.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use parse::token;
1717
use visit::Visitor;
1818
use visit;
1919

20+
use std::cell::RefCell;
2021
use std::hashmap::HashMap;
2122
use std::u32;
2223
use std::local_data;
@@ -799,20 +800,22 @@ fn idx_push<T>(vec: &mut ~[T], val: T) -> u32 {
799800

800801
/// Resolve a syntax object to a name, per MTWT.
801802
pub fn mtwt_resolve(id : Ident) -> Name {
802-
resolve_internal(id, get_sctable(), get_resolve_table())
803+
let resolve_table = get_resolve_table();
804+
let mut resolve_table = resolve_table.borrow_mut();
805+
resolve_internal(id, get_sctable(), resolve_table.get())
803806
}
804807

805808
// FIXME #8215: must be pub for testing
806809
pub type ResolveTable = HashMap<(Name,SyntaxContext),Name>;
807810

808811
// okay, I admit, putting this in TLS is not so nice:
809812
// fetch the SCTable from TLS, create one if it doesn't yet exist.
810-
pub fn get_resolve_table() -> @mut ResolveTable {
811-
local_data_key!(resolve_table_key: @@mut ResolveTable)
813+
pub fn get_resolve_table() -> @RefCell<ResolveTable> {
814+
local_data_key!(resolve_table_key: @@RefCell<ResolveTable>)
812815
match local_data::get(resolve_table_key, |k| k.map(|k| *k)) {
813816
None => {
814-
let new_table = @@mut HashMap::new();
815-
local_data::set(resolve_table_key,new_table);
817+
let new_table = @@RefCell::new(HashMap::new());
818+
local_data::set(resolve_table_key, new_table);
816819
*new_table
817820
},
818821
Some(intr) => *intr

0 commit comments

Comments
 (0)