aboutsummaryrefslogtreecommitdiff
path: root/src/comp
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <[email protected]>2011-03-21 15:15:08 -0400
committerRafael Ávila de Espíndola <[email protected]>2011-03-21 15:15:22 -0400
commit12e7feb71ce1f99ccef425b55295e32027ea69ff (patch)
tree52d3c92ca0bf15f6b5122fb0e3db9e9efd92d296 /src/comp
parentMerge branch 'ty-serialization' (diff)
downloadrust-12e7feb71ce1f99ccef425b55295e32027ea69ff.tar.xz
rust-12e7feb71ce1f99ccef425b55295e32027ea69ff.zip
The T_taskptr is already included in the n_args, don't add it twice.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/trans.rs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 420c919e..40ce2896 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -841,13 +841,11 @@ fn decl_upcall_glue(ModuleRef llmod, type_names tn, uint _n) -> ValueRef {
}
fn get_upcall(&hashmap[str, ValueRef] upcalls,
- type_names tn, ModuleRef llmod,
- str name, int n_args) -> ValueRef {
+ ModuleRef llmod, str name, int n_args) -> ValueRef {
if (upcalls.contains_key(name)) {
ret upcalls.get(name);
}
- auto inputs = vec(T_taskptr(tn));
- inputs += _vec.init_elt[TypeRef](T_int(), n_args as uint);
+ auto inputs = _vec.init_elt[TypeRef](T_int(), n_args as uint);
auto output = T_int();
auto f = decl_cdecl_fn(llmod, name, T_fn(inputs, output));
upcalls.insert(name, f);
@@ -868,7 +866,7 @@ fn trans_upcall2(builder b, @glue_fns glues,
type_names tn, ModuleRef llmod, str name,
vec[ValueRef] args) -> ValueRef {
let int n = (_vec.len[ValueRef](args) as int);
- let ValueRef llupcall = get_upcall(upcalls, tn, llmod, name, n);
+ let ValueRef llupcall = get_upcall(upcalls, llmod, name, n);
llupcall = llvm.LLVMConstPointerCast(llupcall, T_int());
let ValueRef llglue = glues.upcall_glues.(n);