about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjörn Steinbrink <bsteinbr@gmail.com>2014-07-18 21:56:36 +0200
committerBjörn Steinbrink <bsteinbr@gmail.com>2014-07-18 21:56:36 +0200
commitd368ffdb26144fd1f451d3d8ba4344b0a8e82f99 (patch)
tree51b22a77304b9424a15de919ea80ecf88615a502
parent33a4dd824f708d1e7c25ad26d8a4fe801d0b25e8 (diff)
downloadrust-d368ffdb26144fd1f451d3d8ba4344b0a8e82f99.tar.gz
rust-d368ffdb26144fd1f451d3d8ba4344b0a8e82f99.zip
Remove the unneeded final parameter from call_visit_glue
call_visit_glue() is only ever called with None as its last argument, so
we can remove it as well.
-rw-r--r--src/librustc/middle/trans/glue.rs25
-rw-r--r--src/librustc/middle/trans/intrinsic.rs2
2 files changed, 5 insertions, 22 deletions
diff --git a/src/librustc/middle/trans/glue.rs b/src/librustc/middle/trans/glue.rs
index b96f8324651..1e8fdbe300a 100644
--- a/src/librustc/middle/trans/glue.rs
+++ b/src/librustc/middle/trans/glue.rs
@@ -178,29 +178,12 @@ pub fn lazily_emit_visit_glue(ccx: &CrateContext, ti: &tydesc_info) -> ValueRef
 }
 
 // See [Note-arg-mode]
-pub fn call_visit_glue(bcx: &Block, v: ValueRef, tydesc: ValueRef,
-                       static_ti: Option<&tydesc_info>) {
+pub fn call_visit_glue(bcx: &Block, v: ValueRef, tydesc: ValueRef) {
     let _icx = push_ctxt("call_visit_glue");
-    let ccx = bcx.ccx();
-    let static_glue_fn = static_ti.map(|sti| lazily_emit_visit_glue(ccx, sti));
-
-    // When static type info is available, avoid casting to a generic pointer.
-    let llrawptr = if static_glue_fn.is_none() {
-        PointerCast(bcx, v, Type::i8p(ccx))
-    } else {
-        v
-    };
 
-    let llfn = {
-        match static_glue_fn {
-            None => {
-                // Select out the glue function to call from the tydesc
-                let llfnptr = GEPi(bcx, tydesc, [0u, abi::tydesc_field_visit_glue]);
-                Load(bcx, llfnptr)
-            }
-            Some(sgf) => sgf
-        }
-    };
+    // Select the glue function to call from the tydesc
+    let llfn = Load(bcx, GEPi(bcx, tydesc, [0u, abi::tydesc_field_visit_glue]));
+    let llrawptr = PointerCast(bcx, v, Type::i8p(bcx.ccx()));
 
     Call(bcx, llfn, [llrawptr], []);
 }
diff --git a/src/librustc/middle/trans/intrinsic.rs b/src/librustc/middle/trans/intrinsic.rs
index bb33a5e4f8d..689c758dfbf 100644
--- a/src/librustc/middle/trans/intrinsic.rs
+++ b/src/librustc/middle/trans/intrinsic.rs
@@ -290,7 +290,7 @@ pub fn trans_intrinsic_call<'a>(mut bcx: &'a Block<'a>, node: ast::NodeId,
             let td = *llargs.get(0);
             let visitor = *llargs.get(1);
             let td = PointerCast(bcx, td, ccx.tydesc_type().ptr_to());
-            glue::call_visit_glue(bcx, visitor, td, None);
+            glue::call_visit_glue(bcx, visitor, td);
             C_nil(ccx)
         }
         (_, "offset") => {