[Lua] Fix type resolution between SWIG-wrapped modules

See #2126
This commit is contained in:
Olly Betts 2022-10-19 07:29:06 +13:00 committed by Olly Betts
commit a5bc48afea
3 changed files with 17 additions and 1 deletions

View file

@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
Version 4.1.0 (in progress)
===========================
2022-10-19: olly
[Lua] #2126 Fix type resolution between multiple SWIG-wrapped
modules.
2022-10-17: wsfulton
[R] #2385 Add support for std::vector<std::vector<std::string>>.

View file

@ -0,0 +1,12 @@
require("import") -- the import fn
import("mod_a") -- import lib
import("mod_b") -- import lib
-- catch "undefined" global variables
local env = _ENV -- Lua 5.2
if not env then env = getfenv () end -- Lua 5.1
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
c = mod_b.C()
d = mod_b.D()
d:DoSomething(c)

View file

@ -1789,7 +1789,7 @@ SWIGRUNTIME int SWIG_Lua_ConvertPtr(lua_State *L,int index,void **ptr,swig_type
}
else
{
cast=SWIG_TypeCheckStruct(usr->type,type); /* performs normal type checking */
cast=SWIG_TypeCheck(usr->type->name,type); /* performs normal type checking */
if (cast)
{
int newmemory = 0;