From 1f18d2afec632aa9361079ca3bcb5a7f2d73db3a Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 22 Oct 2021 09:23:08 +0800 Subject: *misc --- Runtime/Lua/LuaBind/LuaBindRef.h | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'Runtime/Lua/LuaBind/LuaBindRef.h') diff --git a/Runtime/Lua/LuaBind/LuaBindRef.h b/Runtime/Lua/LuaBind/LuaBindRef.h index 93b30be..7058094 100644 --- a/Runtime/Lua/LuaBind/LuaBindRef.h +++ b/Runtime/Lua/LuaBind/LuaBindRef.h @@ -7,9 +7,7 @@ namespace LuaBind { - // - // 引用,存在LUA_REGISTRYINDEX下面的两个表里 - // + // 全局引用,保存在LUA_REGISTRYINDEX下面的两个表里 class Ref { public: @@ -20,26 +18,29 @@ namespace LuaBind WEAK_REF }; - Ref(int mode = STRONG_REF); + Ref(RefMode mode = STRONG_REF); virtual ~Ref(); operator bool(); + // 将栈上的对象添加到全局引用表中 void SetRef(State& state, int idx); + + // 将引用的对象压入栈 bool PushRef(State& state); - int GetRefID(); + int GetRefID() { return mRefID; } + + RefMode GetRefMode() { return mMode; } private: - int mRefID; // luaL_ref - int mMode; // strong or weak + int mRefID; + RefMode mMode; }; - // - // 强引用,在LUA_REGISTRYINDEX["_LUA_BIND_STRONGREF_TABLE"]里,保证lua object不会被回收。 - // + // 强引用,在LUA_REGISTRYINDEX["GAMELAB_UNIVERSAL_STRONG_REFERENCE_TABLE"]里,保证lua object不会被回收 class StrongRef: public Ref { public: @@ -47,9 +48,7 @@ namespace LuaBind }; - // - // 弱引用,在LUA_REGISTRYINDEX["_LUA_BIND_WEAKREF_TABLE"]里,不影响lua object的回收,只是作为一个方便取lua object的映射。 - // + // 弱引用,在LUA_REGISTRYINDEX["GAMELAB_UNIVERSAL_WEAK_REFERENCE_TABLE"]里,不影响lua object的回收,只是作为一个方便取lua object的映射 class WeakRef : public Ref { public: -- cgit v1.1-26-g67d0