diff --git a/src/object.rs b/src/object.rs index 7f695ff..7aa7bec 100644 --- a/src/object.rs +++ b/src/object.rs @@ -86,7 +86,7 @@ pub enum BuiltinExit { #[derive(Clone, Finalize)] pub struct BuiltinFn { name: Rc, - fun: Rc, + fun: BuiltinFnPtr, } unsafe impl Trace for BuiltinFn { @@ -100,7 +100,7 @@ impl PartialEq for BuiltinFn { } impl BuiltinFn { - pub fn new(name: String, fun: Rc) -> Self { + pub fn new(name: String, fun: BuiltinFnPtr) -> Self { BuiltinFn { name: Rc::new(name), fun, @@ -184,7 +184,7 @@ macro_rules! vtable { macro_rules! builtin_fn { ($name:expr, $fun:expr) => {{ - BuiltinFnObj::new(BuiltinFn::new($name.to_string(), Rc::new($fun))).into_gc() + BuiltinFnObj::new(BuiltinFn::new($name.to_string(), $fun)).into_gc() }}; } diff --git a/src/vm/machine.rs b/src/vm/machine.rs index 88bfdd3..febeafe 100644 --- a/src/vm/machine.rs +++ b/src/vm/machine.rs @@ -332,7 +332,7 @@ impl MachineBuilder { ) { self.register_global( name, - BuiltinFnObj::new(BuiltinFn::new(name.to_string(), Rc::new(fun))).into_gc(), + BuiltinFnObj::new(BuiltinFn::new(name.to_string(), fun)).into_gc(), ); }