diff --git a/Examples/test-suite/php4/arrays_runme.php4 b/Examples/test-suite/php4/arrays_runme.php4 index ee240e58f..d5abfb32b 100644 --- a/Examples/test-suite/php4/arrays_runme.php4 +++ b/Examples/test-suite/php4/arrays_runme.php4 @@ -4,10 +4,8 @@ require "tests.php4"; require "arrays.php"; -// No new functions -check::functions(array(fn_taking_arrays,newintpointer,setintfrompointer,getintfrompointer)); -// No new classes -check::classes(array(simplestruct,arraystruct)); +check::functions(array(fn_taking_arrays,newintpointer,setintfrompointer,getintfrompointer,array_pointer_func)); +check::classes(array(simplestruct,arraystruct,cartposedata_t)); // now new vars check::globals(array()); diff --git a/Source/Modules/php4.cxx b/Source/Modules/php4.cxx index a3529f665..57cdd49b3 100644 --- a/Source/Modules/php4.cxx +++ b/Source/Modules/php4.cxx @@ -1750,7 +1750,7 @@ public: if ( SwigType_isconst(type) ) return SWIG_OK; - // This duplicates the logic from Langauge::variableWrapper() to test if the set wrapper + // This duplicates the logic from Language::variableWrapper() to test if the set wrapper // is made. int assignable = is_assignable(n); if (assignable) { @@ -1760,13 +1760,14 @@ public: } } - create_command( iname, Swig_name_wrapper(iname) ); + String *class_iname = Swig_name_member(class_name,iname); + create_command( iname, Swig_name_wrapper(class_iname) ); Wrapper *f = NewWrapper(); - Printv(f->def, "ZEND_NAMED_FUNCTION(",Swig_name_wrapper(iname), ") {\n", NIL ); - String *mget = Swig_name_wrapper(Swig_name_get( Swig_name_member(class_name,iname))); - String *mset = Swig_name_wrapper(Swig_name_set( Swig_name_member(class_name,iname))); + Printv(f->def, "ZEND_NAMED_FUNCTION(",Swig_name_wrapper(class_iname), ") {\n", NIL ); + String *mget = Swig_name_wrapper(Swig_name_get(class_iname)); + String *mset = Swig_name_wrapper(Swig_name_set(class_iname)); if ( assignable ) { Printf(f->code, "if (ZEND_NUM_ARGS() > 0 ) {\n" ); @@ -1782,6 +1783,10 @@ public: Wrapper_print(f, s_wrappers); + Delete(class_iname); + Delete(mget); + Delete(mset); + return SWIG_OK; } @@ -1896,6 +1901,7 @@ public: Printf(f->def, "}\n\n"); Wrapper_print(f,s_wrappers); DelWrapper(f); + Delete(wname); } return SWIG_OK; } @@ -1919,6 +1925,7 @@ public: if(shadow) { String *wname = NewStringf( "_wrap_new_%s", iname ); create_command( iname, wname ); + Delete(wname); } native_constructor = 0; @@ -1926,7 +1933,7 @@ public: } /* ------------------------------------------------------------ - * constructorHandler() + * CreateZendListDestructor() * ------------------------------------------------------------ */ //virtual int destructorHandler(Node *n) { //}