[PHP] Pass ZTS context through to t_output_helper() so it works
with a ZTS-enabled build of PHP. Reported by Pierre Labastie in github PR#155.
This commit is contained in:
parent
2071b7d157
commit
18c00e20bc
3 changed files with 13 additions and 8 deletions
|
|
@ -5,6 +5,11 @@ See the RELEASENOTES file for a summary of changes in each release.
|
||||||
Version 3.0.1 (in progress)
|
Version 3.0.1 (in progress)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
2014-04-02: olly
|
||||||
|
[PHP] Pass ZTS context through to t_output_helper() so it works
|
||||||
|
with a ZTS-enabled build of PHP. Reported by Pierre Labastie in
|
||||||
|
github PR#155.
|
||||||
|
|
||||||
2014-03-28: wsfulton
|
2014-03-28: wsfulton
|
||||||
[Java C# D Go] Fixes for C enums used in an API and the definition of the enum
|
[Java C# D Go] Fixes for C enums used in an API and the definition of the enum
|
||||||
has not been parsed. For D, this fixes a segfault in SWIG. The other languages
|
has not been parsed. For D, this fixes a segfault in SWIG. The other languages
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
zval *o;
|
zval *o;
|
||||||
MAKE_STD_ZVAL(o);
|
MAKE_STD_ZVAL(o);
|
||||||
ZVAL_BOOL(o,temp$argnum);
|
ZVAL_BOOL(o,temp$argnum);
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (TYPE lvalue), TYPE &REFERENCE (TYPE lvalue)
|
%typemap(in) TYPE *REFERENCE (TYPE lvalue), TYPE &REFERENCE (TYPE lvalue)
|
||||||
%{
|
%{
|
||||||
|
|
@ -67,7 +67,7 @@
|
||||||
zval *o;
|
zval *o;
|
||||||
MAKE_STD_ZVAL(o);
|
MAKE_STD_ZVAL(o);
|
||||||
ZVAL_DOUBLE(o,temp$argnum);
|
ZVAL_DOUBLE(o,temp$argnum);
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (TYPE dvalue), TYPE &REFERENCE (TYPE dvalue)
|
%typemap(in) TYPE *REFERENCE (TYPE dvalue), TYPE &REFERENCE (TYPE dvalue)
|
||||||
%{
|
%{
|
||||||
|
|
@ -96,7 +96,7 @@
|
||||||
zval *o;
|
zval *o;
|
||||||
MAKE_STD_ZVAL(o);
|
MAKE_STD_ZVAL(o);
|
||||||
ZVAL_LONG(o,temp$argnum);
|
ZVAL_LONG(o,temp$argnum);
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (TYPE lvalue), TYPE &REFERENCE (TYPE lvalue)
|
%typemap(in) TYPE *REFERENCE (TYPE lvalue), TYPE &REFERENCE (TYPE lvalue)
|
||||||
%{
|
%{
|
||||||
|
|
@ -137,7 +137,7 @@ INT_TYPEMAP(long long);
|
||||||
sprintf(temp, "%lld", (long long)temp$argnum);
|
sprintf(temp, "%lld", (long long)temp$argnum);
|
||||||
ZVAL_STRING(o, temp, 1);
|
ZVAL_STRING(o, temp, 1);
|
||||||
}
|
}
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (long long lvalue)
|
%typemap(in) TYPE *REFERENCE (long long lvalue)
|
||||||
%{
|
%{
|
||||||
|
|
@ -178,7 +178,7 @@ INT_TYPEMAP(unsigned long long);
|
||||||
sprintf(temp, "%llu", (unsigned long long)temp$argnum);
|
sprintf(temp, "%llu", (unsigned long long)temp$argnum);
|
||||||
ZVAL_STRING(o, temp, 1);
|
ZVAL_STRING(o, temp, 1);
|
||||||
}
|
}
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
%typemap(in) TYPE *REFERENCE (unsigned long long lvalue)
|
%typemap(in) TYPE *REFERENCE (unsigned long long lvalue)
|
||||||
%{
|
%{
|
||||||
|
|
@ -276,12 +276,12 @@ INT_TYPEMAP(unsigned long long);
|
||||||
%}
|
%}
|
||||||
%typemap(in,numinputs=0) char OUTPUT[ANY] ( char temp[$1_dim0] )
|
%typemap(in,numinputs=0) char OUTPUT[ANY] ( char temp[$1_dim0] )
|
||||||
"$1 = temp;";
|
"$1 = temp;";
|
||||||
%typemap(argout) char OUTPUT[ANY]
|
%typemap(argout,fragment="t_output_helper") char OUTPUT[ANY]
|
||||||
{
|
{
|
||||||
zval *o;
|
zval *o;
|
||||||
MAKE_STD_ZVAL(o);
|
MAKE_STD_ZVAL(o);
|
||||||
ZVAL_STRINGL(o,temp$argnum,$1_dim0);
|
ZVAL_STRINGL(o,temp$argnum,$1_dim0);
|
||||||
t_output_helper( &$result, o );
|
t_output_helper( &$result, o TSRMLS_CC );
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(in,numinputs=0) void **OUTPUT (int force),
|
%typemap(in,numinputs=0) void **OUTPUT (int force),
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@
|
||||||
|
|
||||||
%fragment("t_output_helper","header") %{
|
%fragment("t_output_helper","header") %{
|
||||||
static void
|
static void
|
||||||
t_output_helper( zval **target, zval *o) {
|
t_output_helper(zval **target, zval *o TSRMLS_DC) {
|
||||||
if ( (*target)->type == IS_ARRAY ) {
|
if ( (*target)->type == IS_ARRAY ) {
|
||||||
/* it's already an array, just append */
|
/* it's already an array, just append */
|
||||||
add_next_index_zval( *target, o );
|
add_next_index_zval( *target, o );
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue