Skip to content

Commit 5aa0a6a

Browse files
committed
---
yaml --- r: 5051 b: refs/heads/master c: c6a47e4 h: refs/heads/master i: 5049: aea1f72 5047: fe89400 v: v3
1 parent 2bf766b commit 5aa0a6a

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

[refs]

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 6d8bb3ce29aa22297a0bdcb9b2ef41fc60bf098e
2+
refs/heads/master: c6a47e4087c226bf61964fe1105b47328553a8aa

trunk/src/comp/middle/gc.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ fn add_gc_root(cx: &@block_ctxt, llval: ValueRef, ty: ty::t) -> @block_ctxt {
5656
tk_derived. {
5757
// It's a derived type descriptor. First, spill it.
5858
let lltydescptr = trans::alloca(bcx, val_ty(lltydesc));
59-
bld::Store(bcx, lltydesc, lltydescptr);
59+
60+
let llderivedtydescs =
61+
trans::llderivedtydescs_block_ctxt(bcx_fcx(bcx));
62+
bld::Store(llderivedtydescs, lltydesc, lltydescptr);
6063

6164
let number = gc_cx.next_tydesc_num;
6265
gc_cx.next_tydesc_num += 1u;
@@ -71,10 +74,10 @@ fn add_gc_root(cx: &@block_ctxt, llval: ValueRef, ty: ty::t) -> @block_ctxt {
7174
lldestindex = lll::LLVMConstPointerCast(lldestindex, T_ptr(T_i8()));
7275
llsrcindex = lll::LLVMConstPointerCast(llsrcindex, T_ptr(T_i8()));
7376

74-
lltydescptr =
75-
bld::PointerCast(bcx, lltydescptr, T_ptr(T_ptr(T_i8())));
77+
lltydescptr = bld::PointerCast(llderivedtydescs, lltydescptr,
78+
T_ptr(T_ptr(T_i8())));
7679

77-
bld::Call(bcx, gcroot, [lltydescptr, lldestindex]);
80+
bld::Call(llderivedtydescs, gcroot, [lltydescptr, lldestindex]);
7881
bld::Call(bcx, gcroot, [llvalptr, llsrcindex]);
7982
}
8083
tk_param. {

0 commit comments

Comments
 (0)