Skip to content

Commit 374a939

Browse files
committed
---
yaml --- r: 90743 b: refs/heads/master c: f38561d h: refs/heads/master i: 90741: de69cbc 90739: 5c2c0de 90735: 578008d v: v3
1 parent 9341d9d commit 374a939

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 3ed45bb595571495e4d9165ace5c604523d13b97
2+
refs/heads/master: f38561dfd603c5a39dc1c31b0165589da6a2f5b3
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: a6d3e57dca68fde4effdda3e4ae2887aa535fcd6
55
refs/heads/try: b160761e35efcd1207112b3b782c06633cf441a8

trunk/src/librustc/middle/trans/debuginfo.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ pub struct CrateDebugContext {
181181
priv namespace_map: RefCell<HashMap<~[ast::Ident], @NamespaceTreeNode>>,
182182
// This collection is used to assert that composite types (structs, enums, ...) have their
183183
// members only set once:
184-
priv composite_types_completed: HashSet<DIType>,
184+
priv composite_types_completed: RefCell<HashSet<DIType>>,
185185
}
186186

187187
impl CrateDebugContext {
@@ -198,7 +198,7 @@ impl CrateDebugContext {
198198
created_files: RefCell::new(HashMap::new()),
199199
created_types: RefCell::new(HashMap::new()),
200200
namespace_map: RefCell::new(HashMap::new()),
201-
composite_types_completed: HashSet::new(),
201+
composite_types_completed: RefCell::new(HashSet::new()),
202202
};
203203
}
204204
}
@@ -1646,11 +1646,16 @@ fn set_members_of_composite_type(cx: &mut CrateContext,
16461646
// used instead of a new one created in create_struct_stub. This would cause a hard to trace
16471647
// assertion in DICompositeType::SetTypeArray(). The following check makes sure that we get a
16481648
// better error message if this should happen again due to some regression.
1649-
if debug_context(cx).composite_types_completed.contains(&composite_type_metadata) {
1650-
cx.sess.span_bug(definition_span, "debuginfo::set_members_of_composite_type() - Already \
1651-
completed forward declaration re-encountered.");
1652-
} else {
1653-
debug_context(cx).composite_types_completed.insert(composite_type_metadata);
1649+
{
1650+
let mut composite_types_completed =
1651+
debug_context(cx).composite_types_completed.borrow_mut();
1652+
if composite_types_completed.get().contains(&composite_type_metadata) {
1653+
cx.sess.span_bug(definition_span, "debuginfo::set_members_of_composite_type() - \
1654+
Already completed forward declaration \
1655+
re-encountered.");
1656+
} else {
1657+
composite_types_completed.get().insert(composite_type_metadata);
1658+
}
16541659
}
16551660

16561661
let loc = span_start(cx, definition_span);

0 commit comments

Comments
 (0)