From b36ae8aaf4acc021ff50aa088d1f3da0b163d00f Mon Sep 17 00:00:00 2001 From: Olly Betts Date: Fri, 25 Jun 2010 01:48:33 +0000 Subject: [PATCH] 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 --- Lib/php/globalvar.i | 4 ++-- Lib/php/php.swg | 2 +- Lib/php/phpinit.swg | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Lib/php/globalvar.i b/Lib/php/globalvar.i index d0b4ffe0a..45fb0223b 100644 --- a/Lib/php/globalvar.i +++ b/Lib/php/globalvar.i @@ -102,7 +102,7 @@ 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)); 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); } -%typemap(varout) SWIGTYPE (CLASS::*) +%typemap(varout, fragment="swig_php_init_member_ptr") SWIGTYPE (CLASS::*) { void * p = emalloc(sizeof($1)); memcpy(p, &$1, sizeof($1)); diff --git a/Lib/php/php.swg b/Lib/php/php.swg index 1ccf58246..f4cc8d2b2 100644 --- a/Lib/php/php.swg +++ b/Lib/php/php.swg @@ -351,7 +351,7 @@ 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)); memcpy(p, &$1, sizeof($1)); diff --git a/Lib/php/phpinit.swg b/Lib/php/phpinit.swg index d4985c28d..6e5cc29d2 100644 --- a/Lib/php/phpinit.swg +++ b/Lib/php/phpinit.swg @@ -13,7 +13,7 @@ %fragment("swig_php_init_member_ptr2", "header") { #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); } @@ -21,5 +21,5 @@ static int swig_member_ptr = 0; } %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); }