Add Lua pointer reference typemaps
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10363 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
7847acfcd7
commit
929f68b069
4 changed files with 21 additions and 3 deletions
|
|
@ -1,6 +1,9 @@
|
||||||
Version 1.3.35 (7 April 2008)
|
Version 1.3.35 (7 April 2008)
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
|
04/07/2008: wsfulton
|
||||||
|
[Lua] Add missing pointer reference typemaps
|
||||||
|
|
||||||
04/06/2008: wsfulton
|
04/06/2008: wsfulton
|
||||||
Fix stack overflow when using typemap warning suppression, eg
|
Fix stack overflow when using typemap warning suppression, eg
|
||||||
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK_MSG)
|
%warnfilter(SWIGWARN_TYPEMAP_CHARLEAK_MSG)
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@ CPP_TEST_BROKEN += \
|
||||||
extend_variable \
|
extend_variable \
|
||||||
namespace_union \
|
namespace_union \
|
||||||
nested_comment \
|
nested_comment \
|
||||||
|
operator_overload_break \
|
||||||
overload_complicated \
|
overload_complicated \
|
||||||
template_default_pointer \
|
template_default_pointer \
|
||||||
template_expr
|
template_expr
|
||||||
|
|
@ -207,7 +208,6 @@ CPP_TEST_CASES += \
|
||||||
newobject1 \
|
newobject1 \
|
||||||
ordering \
|
ordering \
|
||||||
operator_overload \
|
operator_overload \
|
||||||
operator_overload_break \
|
|
||||||
overload_copy \
|
overload_copy \
|
||||||
overload_extend \
|
overload_extend \
|
||||||
overload_rename \
|
overload_rename \
|
||||||
|
|
|
||||||
11
Examples/test-suite/lua/pointer_reference_runme.lua
Normal file
11
Examples/test-suite/lua/pointer_reference_runme.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
require("import") -- the import fn
|
||||||
|
import("pointer_reference",true) -- import code
|
||||||
|
|
||||||
|
|
||||||
|
s=pointer_reference.get()
|
||||||
|
assert(s.value == 10)
|
||||||
|
|
||||||
|
ss = pointer_reference.Struct(20);
|
||||||
|
pointer_reference.set(ss);
|
||||||
|
assert(pointer_reference.Struct_instance.value == 20)
|
||||||
|
|
||||||
|
|
@ -159,12 +159,16 @@
|
||||||
%}
|
%}
|
||||||
|
|
||||||
// Also needed for object ptrs by const ref
|
// Also needed for object ptrs by const ref
|
||||||
// eg const A* ref_pointer(A* const& a);
|
// eg A* const& ref_pointer(A* const& a);
|
||||||
// found in mixed_types.i
|
// found in mixed_types.i
|
||||||
%typemap(in,checkfn="lua_isuserdata") SWIGTYPE* const &($*ltype temp)
|
%typemap(in,checkfn="lua_isuserdata") SWIGTYPE *&($*ltype temp)
|
||||||
%{temp=($*ltype)SWIG_MustGetPtr(L,$input,$*descriptor,0,$argnum,"$symname");
|
%{temp=($*ltype)SWIG_MustGetPtr(L,$input,$*descriptor,0,$argnum,"$symname");
|
||||||
$1=&temp;%}
|
$1=&temp;%}
|
||||||
|
|
||||||
|
%typemap(out) SWIGTYPE *&
|
||||||
|
%{SWIG_NewPointerObj(L,*$1,$*descriptor,$owner); SWIG_arg++; %}
|
||||||
|
|
||||||
|
|
||||||
// DISOWN-ing typemaps
|
// DISOWN-ing typemaps
|
||||||
// if you have an object pointer which must be disowned, use this typemap
|
// if you have an object pointer which must be disowned, use this typemap
|
||||||
// eg. for void destroy_foo(Foo* toDie);
|
// eg. for void destroy_foo(Foo* toDie);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue