diff --git a/src/bindings/php/hammer.i b/src/bindings/php/hammer.i index f0608fdaa952d0664970d2f7cdcb000868cb52b0..fbdcc59cdeea904f8d131b62e8a528d31461467c 100644 --- a/src/bindings/php/hammer.i +++ b/src/bindings/php/hammer.i @@ -5,10 +5,13 @@ %inline %{ static int h_tt_php; + static int le_h_tt_php_descriptor; %} %init %{ +#define PHP_H_TT_PHP_DESCRIPTOR_RES_NAME "Hammer Token" h_tt_php = h_allocate_token_type("com.upstandinghackers.hammer.php"); + le_h_tt_php_descriptor = zend_register_list_destructors_ex(NULL, NULL, PHP_H_TT_PHP_DESCRIPTOR_RES_NAME, module_number); %} %inline { @@ -109,7 +112,8 @@ break; default: if (token->token_type == h_tt_php) { - RETVAL_RESOURCE(token->token_data.user); + //RETVAL_RESOURCE(token->token_data.user); + ZEND_REGISTER_RESOURCE(return_value, token->token_data.user, le_h_tt_php_descriptor); } else { int res = 0; res = SWIG_ConvertPtr(return_value, (void*)token, SWIGTYPE_p_HParsedToken_, 0 | 0);