From c6ebb179a1f67e61c10398f917fbcd67fe79d973 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Tue, 22 Apr 2025 21:06:18 -0700
Subject: [PATCH] roblox_emulator: use common function pointer for lazy user
 data

---
 lib/roblox_emulator/src/runner/instance/instance.rs | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/lib/roblox_emulator/src/runner/instance/instance.rs b/lib/roblox_emulator/src/runner/instance/instance.rs
index bc831b9..5e4f60c 100644
--- a/lib/roblox_emulator/src/runner/instance/instance.rs
+++ b/lib/roblox_emulator/src/runner/instance/instance.rs
@@ -533,14 +533,17 @@ type LUD=phf::Map<&'static str,// Class name
 		CreateUserData
 	>
 >;
+fn create_script_signal(lua:&mlua::Lua)->mlua::Result<mlua::AnyUserData>{
+	lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new())
+}
 static LAZY_USER_DATA:LUD=phf::phf_map!{
 	"RunService"=>phf::phf_map!{
-		"Stepped"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
-		"Heartbeat"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
-		"RenderStepped"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
+		"Stepped"=>create_script_signal,
+		"Heartbeat"=>create_script_signal,
+		"RenderStepped"=>create_script_signal,
 	},
 	"Players"=>phf::phf_map!{
-		"PlayerAdded"=>|lua|lua.create_any_userdata(crate::runner::script_signal::ScriptSignal::new()),
+		"PlayerAdded"=>create_script_signal,
 	},
 };
 #[derive(Default)]