summaryrefslogtreecommitdiff
path: root/Runtime/Lua/LuaBind/LuaBindRef.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-10-22 09:23:08 +0800
committerchai <chaifix@163.com>2021-10-22 09:23:08 +0800
commit1f18d2afec632aa9361079ca3bcb5a7f2d73db3a (patch)
treedab695a32735d1f19ae74ea7e7d094371531dde8 /Runtime/Lua/LuaBind/LuaBindRef.h
parent998a13b08c43b0813d1d4d38692ea7f8bd31c936 (diff)
*misc
Diffstat (limited to 'Runtime/Lua/LuaBind/LuaBindRef.h')
-rw-r--r--Runtime/Lua/LuaBind/LuaBindRef.h25
1 files changed, 12 insertions, 13 deletions
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: