Fix: Destroying a Signal

This commit is contained in:
EternityDev 2024-05-24 20:52:00 +07:00
parent aa693aee4f
commit eba9f79655

View file

@ -39,9 +39,13 @@ end
function Signal:Disconnect(key: string) function Signal:Disconnect(key: string)
self[key]:Disconnect() self[key]:Disconnect()
self[key] = nil
end end
function Signal:DisconnectAll(): () function Signal:DisconnectAll(): ()
for _, handle in self do
handle:Disconnect()
end
table.clear(self) table.clear(self)
end end
@ -84,6 +88,12 @@ end
function Signal:Destroy(): () function Signal:Destroy(): ()
self:DisconnectAll() self:DisconnectAll()
for idx: string, signal in Signals do
if self :: any == signal then
Signals[idx] = nil
break
end
end
setmetatable(self, nil) setmetatable(self, nil)
end end