]> git.lizzy.rs Git - rust.git/commitdiff
Remove the unneeded final parameter from call_visit_glue
authorBjörn Steinbrink <bsteinbr@gmail.com>
Fri, 18 Jul 2014 19:56:36 +0000 (21:56 +0200)
committerBjörn Steinbrink <bsteinbr@gmail.com>
Fri, 18 Jul 2014 19:56:36 +0000 (21:56 +0200)
call_visit_glue() is only ever called with None as its last argument, so
we can remove it as well.

src/librustc/middle/trans/glue.rs
src/librustc/middle/trans/intrinsic.rs

index b96f83246519b1634a9edca9a103bf5c0e6e84bb..1e8fdbe300ad357c0f2e72845cb8bbe8cebe8adc 100644 (file)
@@ -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], []);
 }
index bb33a5e4f8d2fa5a1b392a47d6212ae85d617f11..689c758dfbf0e518ad7780a690b29fdcb408b817 100644 (file)
@@ -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") => {