Avoid transmute
diff --git a/src/clang.rs b/src/clang.rs
index d50d903..36ccd26 100644
--- a/src/clang.rs
+++ b/src/clang.rs
@@ -400,12 +400,9 @@
     where
         Visitor: FnMut(Cursor) -> CXChildVisitResult,
     {
+        let data = &mut visitor as *mut Visitor;
         unsafe {
-            clang_visitChildren(
-                self.x,
-                visit_children::<Visitor>,
-                mem::transmute(&mut visitor),
-            );
+            clang_visitChildren(self.x, visit_children::<Visitor>, data.cast());
         }
     }