【问题标题】:Is it harmless to luaL_unref twice?luaL_unref 两次是否无害?
【发布时间】:2021-07-27 15:44:04
【问题描述】:

当引用这样的值时:

lua_pushnumber(L, 1);
ref = luaL_ref(L, LUA_REGISTRYINDEX);

多次取消引用ref 是否无害,还是会导致问题?即对于上面的代码多次调用luaL_unref(L, LUA_REGISTRYINDEX, ref) 是否无害,或者每个luaL_ref 调用必须只有一个luaL_unref 调用?

【问题讨论】:

    标签: lua lua-api


    【解决方案1】:

    它必须正好是一个luaL_unref
    Lua 将未引用的索引保存在一个链表中,供luaL_ref 以后重用。
    两次取消引用相同的索引将导致稍后从luaL_ref 获得该索引两次。这意味着您将覆盖之前提交的数据。
    https://www.lua.org/source/5.4/lauxlib.c.html#luaL_unref

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2012-12-12
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多