Add SWIGTYPE *& typemaps for PHP
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11556 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
3675a7baf7
commit
45359dc12c
2 changed files with 33 additions and 1 deletions
14
Examples/test-suite/php/pointer_reference_runme.php
Normal file
14
Examples/test-suite/php/pointer_reference_runme.php
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require "tests.php";
|
||||||
|
require "pointer_reference.php";
|
||||||
|
|
||||||
|
$s = get();
|
||||||
|
check::equal(Struct_value_get($s), 10, "pointer_reference.get failed");
|
||||||
|
|
||||||
|
$ss = new_Struct(20);
|
||||||
|
set($ss);
|
||||||
|
check::equal(Struct_value_get(Struct_instance()), 20, "pointer_reference.set failed");
|
||||||
|
|
||||||
|
check::done();
|
||||||
|
?>
|
||||||
|
|
@ -114,6 +114,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
%typemap(in) SWIGTYPE *& ($*ltype temp)
|
||||||
|
{
|
||||||
|
if(SWIG_ConvertPtr(*$input, (void **) &temp, $*1_descriptor, 0) < 0) {
|
||||||
|
SWIG_PHP_Error(E_ERROR, "Type error in argument $argnum of $symname. Expected $*1_descriptor");
|
||||||
|
}
|
||||||
|
$1 = &temp;
|
||||||
|
}
|
||||||
|
|
||||||
%typemap(in) SWIGTYPE *DISOWN
|
%typemap(in) SWIGTYPE *DISOWN
|
||||||
{
|
{
|
||||||
if(SWIG_ConvertPtr(*$input, (void **) &$1, $1_descriptor, SWIG_POINTER_DISOWN ) < 0) {
|
if(SWIG_ConvertPtr(*$input, (void **) &$1, $1_descriptor, SWIG_POINTER_DISOWN ) < 0) {
|
||||||
|
|
@ -284,6 +292,11 @@
|
||||||
SWIG_SetPointerZval(return_value, (void *)$1, $1_descriptor, $owner);
|
SWIG_SetPointerZval(return_value, (void *)$1, $1_descriptor, $owner);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
%typemap(out) SWIGTYPE *&
|
||||||
|
%{
|
||||||
|
SWIG_SetPointerZval(return_value, (void *)*$1, $*1_descriptor, $owner);
|
||||||
|
%}
|
||||||
|
|
||||||
%typemap(directorin) SWIGTYPE *,
|
%typemap(directorin) SWIGTYPE *,
|
||||||
SWIGTYPE [],
|
SWIGTYPE [],
|
||||||
SWIGTYPE &
|
SWIGTYPE &
|
||||||
|
|
@ -325,6 +338,10 @@
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Array reference typemaps */
|
||||||
|
%apply SWIGTYPE & { SWIGTYPE ((&)[ANY]) }
|
||||||
|
|
||||||
|
|
||||||
%typemap(out) void "";
|
%typemap(out) void "";
|
||||||
|
|
||||||
%typemap(out) char [ANY]
|
%typemap(out) char [ANY]
|
||||||
|
|
@ -368,7 +385,8 @@
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *,
|
%typecheck(SWIG_TYPECHECK_POINTER) SWIGTYPE *,
|
||||||
SWIGTYPE [],
|
SWIGTYPE [],
|
||||||
SWIGTYPE &
|
SWIGTYPE &,
|
||||||
|
SWIGTYPE *&
|
||||||
{
|
{
|
||||||
void *tmp;
|
void *tmp;
|
||||||
_v = (SWIG_ConvertPtr(*$input, (void**)&tmp, $1_descriptor, 0) >= 0);
|
_v = (SWIG_ConvertPtr(*$input, (void**)&tmp, $1_descriptor, 0) >= 0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue