From 2d58789d66f1b63ad63304584c7ac43284b540b8 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Wed, 6 Jul 2016 20:52:04 +0200 Subject: Converted cLuaState::cTableRef to use cTrackedRef. This makes the table-based callbacks resistent to LuaState unloads and safer to use. --- src/Bindings/LuaTCPLink.h | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/Bindings/LuaTCPLink.h') diff --git a/src/Bindings/LuaTCPLink.h b/src/Bindings/LuaTCPLink.h index c8ae776fe..b8c886ef8 100644 --- a/src/Bindings/LuaTCPLink.h +++ b/src/Bindings/LuaTCPLink.h @@ -10,8 +10,8 @@ #pragma once #include "../OSSupport/Network.h" -#include "PluginLua.h" #include "../PolarSSL++/SslContext.h" +#include "LuaState.h" @@ -30,11 +30,11 @@ class cLuaTCPLink: public cTCPLink::cCallbacks { public: - /** Creates a new instance of the link, attached to the specified plugin and wrapping the callbacks that are in a table at the specified stack pos. */ - cLuaTCPLink(cPluginLua & a_Plugin, int a_CallbacksTableStackPos); + /** Creates a new instance of the link, wrapping the callbacks that are in the specified table. */ + cLuaTCPLink(cLuaState::cTableRefPtr && a_Callbacks); /** Creates a new instance of the link, attached to the specified plugin and wrapping the callbacks that are in the specified referenced table. */ - cLuaTCPLink(cPluginLua & a_Plugin, cLuaState::cRef && a_CallbacksTableRef, cLuaServerHandleWPtr a_Server); + cLuaTCPLink(cLuaState::cTableRefPtr && a_Callbacks, cLuaServerHandleWPtr a_Server); ~cLuaTCPLink(); @@ -139,11 +139,8 @@ protected: }; - /** The plugin for which the link is created. */ - cPluginLua & m_Plugin; - /** The Lua table that holds the callbacks to be invoked. */ - cLuaState::cRef m_Callbacks; + cLuaState::cTableRefPtr m_Callbacks; /** The underlying link representing the connection. May be nullptr. */ -- cgit v1.2.3