Skip to content

Commit 239f429

Browse files
committed
---
yaml --- r: 61348 b: refs/heads/try c: bcec83a h: refs/heads/master v: v3
1 parent a28d764 commit 239f429

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 2d28d645422c1617be58c8ca7ad9a457264ca850
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 2d28d645422c1617be58c8ca7ad9a457264ca850
5-
refs/heads/try: d806c96ffb33acb35414a5743bca3c870d1f15c4
5+
refs/heads/try: bcec83aaee0a44639a4b231834140dcb1d9adc7b
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/libcore/task/local_data_priv.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,10 @@ unsafe fn get_task_local_map(task: *rust_task) -> TaskLocalMap {
9494
let map_ptr = rt::rust_get_task_local_data(task);
9595
if map_ptr.is_null() {
9696
let map: TaskLocalMap = @mut ~[];
97+
// NB: This bumps the ref count before converting to an unsafe pointer,
98+
// keeping the map alive until TLS is destroyed
9799
rt::rust_set_task_local_data(task, cast::transmute(map));
98100
rt::rust_task_local_data_atexit(task, cleanup_task_local_map_extern_cb);
99-
// Also need to reference it an extra time to keep it for now.
100-
let nonmut = cast::transmute::<TaskLocalMap,
101-
@~[Option<TaskLocalElement>]>(map);
102-
cast::bump_box_refcount(nonmut);
103101
map
104102
} else {
105103
let map = cast::transmute(map_ptr);

0 commit comments

Comments
 (0)