[PHP] The usage of $input in PHP directorout typemaps has been
changed to be consistent with other languages. The typemaps provided by SWIG have been updated accordingly, but if you have written your own directorout typemaps, you'll need to update $input to &$input (or make equivalent changes). *** POTENTIAL INCOMPATIBILITY ***
This commit is contained in:
parent
c6e4dea572
commit
cecd89f66f
6 changed files with 17 additions and 27 deletions
|
|
@ -13,24 +13,6 @@
|
|||
// Can't use the %typemap(directorout) MyType & = SWIGTYPE & approach as non-director languages don't define any directorout typemaps
|
||||
%typemap(directorout) MyType &Class1::foo2, MyType &foo1 %{ /* special start */ $input = 0; /* special end */ %}
|
||||
|
||||
#ifdef SWIGPHP
|
||||
%typemap(directorout, warning="PHP directorout typemaps need fixing") MyType &Class1::foo2, MyType &foo1 %{ /* special start */ /*$input = 0;*/ /* special end */ %}
|
||||
/* Patch to make $input work same as other languages. Then $input needs changing to &$input in most (maybe all) typemaps.
|
||||
--- a/Source/Modules/php.cxx
|
||||
+++ b/Source/Modules/php.cxx
|
||||
@@ -2631,8 +2631,7 @@ done:
|
||||
if (!is_void) {
|
||||
tm = Swig_typemap_lookup("directorout", n, Swig_cresult_name(), w);
|
||||
if (tm != 0) {
|
||||
- static const String *amp_result = NewStringf("&%s", Swig_cresult_name());
|
||||
- Replaceall(tm, "$input", amp_result);
|
||||
+ Replaceall(tm, "$input", Swig_cresult_name());
|
||||
char temp[24];
|
||||
sprintf(temp, "%d", idx);
|
||||
Replaceall(tm, "$argnum", temp);
|
||||
*/
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef SWIGCSHARP
|
||||
%typemap(csdirectorout) MyType & %{ WILL_NOT_COMPILE %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue