Attach the swig_php_init_member_ptr fragment to all the typemaps which need it.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12148 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b946430c8a
commit
b36ae8aaf4
3 changed files with 5 additions and 5 deletions
|
|
@ -102,7 +102,7 @@
|
||||||
zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void*)&z_var, sizeof(zval *), NULL);
|
zend_hash_add(&EG(symbol_table), (char*)"$1", sizeof("$1"), (void*)&z_var, sizeof(zval *), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varinit) SWIGTYPE (CLASS::*)
|
%typemap(varinit, fragment="swig_php_init_member_ptr") SWIGTYPE (CLASS::*)
|
||||||
{
|
{
|
||||||
void * p = emalloc(sizeof($1));
|
void * p = emalloc(sizeof($1));
|
||||||
memcpy(p, &$1, sizeof($1));
|
memcpy(p, &$1, sizeof($1));
|
||||||
|
|
@ -344,7 +344,7 @@ deliberate error cos this code looks bogus to me
|
||||||
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);
|
SWIG_SetPointerZval(*z_var, (void*)$1, $1_descriptor, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(varout) SWIGTYPE (CLASS::*)
|
%typemap(varout, fragment="swig_php_init_member_ptr") SWIGTYPE (CLASS::*)
|
||||||
{
|
{
|
||||||
void * p = emalloc(sizeof($1));
|
void * p = emalloc(sizeof($1));
|
||||||
memcpy(p, &$1, sizeof($1));
|
memcpy(p, &$1, sizeof($1));
|
||||||
|
|
|
||||||
|
|
@ -351,7 +351,7 @@
|
||||||
SWIG_SetPointerZval($input, (void *)&$1_name, $1_descriptor, $owner);
|
SWIG_SetPointerZval($input, (void *)&$1_name, $1_descriptor, $owner);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%typemap(out) SWIGTYPE (CLASS::*)
|
%typemap(out, fragment="swig_php_init_member_ptr") SWIGTYPE (CLASS::*)
|
||||||
{
|
{
|
||||||
void * p = emalloc(sizeof($1));
|
void * p = emalloc(sizeof($1));
|
||||||
memcpy(p, &$1, sizeof($1));
|
memcpy(p, &$1, sizeof($1));
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
%fragment("swig_php_init_member_ptr2", "header") {
|
%fragment("swig_php_init_member_ptr2", "header") {
|
||||||
#define SWIG_MEMBER_PTR ((char*)"CLASS::*")
|
#define SWIG_MEMBER_PTR ((char*)"CLASS::*")
|
||||||
|
|
||||||
static void member_ptr_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
|
static void swig_member_ptr_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
|
||||||
efree(rsrc->ptr);
|
efree(rsrc->ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -21,5 +21,5 @@ static int swig_member_ptr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
%fragment("swig_php_init_member_ptr", "init", fragment="swig_php_init_member_ptr2") {
|
%fragment("swig_php_init_member_ptr", "init", fragment="swig_php_init_member_ptr2") {
|
||||||
swig_member_ptr = zend_register_list_destructors_ex(member_ptr_dtor, NULL, SWIG_MEMBER_PTR, module_number);
|
swig_member_ptr = zend_register_list_destructors_ex(swig_member_ptr_dtor, NULL, SWIG_MEMBER_PTR, module_number);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue