diff --git a/package.xml b/package.xml index d303f50..3e1fa30 100644 --- a/package.xml +++ b/package.xml @@ -10,11 +10,11 @@ bobwei9@hotmail.com yes - 2017-03-06 - + 2017-05-07 + - 0.1.2 - 0.1.2 + 0.2.0 + 0.2.0 beta @@ -22,9 +22,8 @@ PHP License -- Fix uv_listen() -- Fix a few memory leaks -- Fix loop cleanup +- Move from resource handles to object handles +- Various smaller fixes diff --git a/php_uv.c b/php_uv.c index a824a42..ac6ce98 100644 --- a/php_uv.c +++ b/php_uv.c @@ -2039,16 +2039,17 @@ static void php_uv_close_cb(uv_handle_t *handle) php_uv_t *uv = (php_uv_t *) handle->data; TSRMLS_FETCH_FROM_CTX(uv->thread_ctx); - if (!(GC_FLAGS(&uv->std) & IS_OBJ_DESTRUCTOR_CALLED)) { + if (!PHP_UV_IS_DTORED(uv)) { ZVAL_OBJ(¶ms[0], (zend_object *) uv); php_uv_do_callback2(&retval, uv, params, 1, PHP_UV_CLOSE_CB TSRMLS_CC); zval_ptr_dtor(&retval); + + /* manually clean the uv handle to avoid default dtor handling */ + clean_uv_handle(uv); } PHP_UV_DEBUG_OBJ_DEL_REFCOUNT(uv_close_cb, uv); - /* manually clean the uv handle to avoid default dtor handling */ - clean_uv_handle(uv); OBJ_RELEASE(&uv->std); } diff --git a/php_uv.h b/php_uv.h index db47466..03607e0 100755 --- a/php_uv.h +++ b/php_uv.h @@ -3,7 +3,7 @@ #define PHP_UV_H #define PHP_UV_EXTNAME "uv" -#define PHP_UV_VERSION "0.1.2" +#define PHP_UV_VERSION "0.2.0" #ifdef HAVE_CONFIG_H #include "config.h"