X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=4377dcc1e37f0888064b9d62a79a90f3b2185bac;hb=650dad8564d53bd3fb6c9867fa81e0abf17f6f7b;hp=1d04ed119e39a4248cd8fcd28f6e2fb64a9c899c;hpb=f0c6d7fcc16ca277aa197fd0bb1a17087dcd387e;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index 1d04ed1..4377dcc 100644 --- a/http_request_object.c +++ b/http_request_object.c @@ -688,12 +688,14 @@ STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this ret = FAILURE; } - if (zend_hash_exists(&Z_OBJCE_P(getThis())->function_table, "onfinish", sizeof("onfinish"))) { + if (!EG(exception) && zend_hash_exists(&Z_OBJCE_P(getThis())->function_table, "onfinish", sizeof("onfinish"))) { zval *param; MAKE_STD_ZVAL(param); ZVAL_BOOL(param, ret == SUCCESS); - zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "onfinish", NULL, param); + with_error_handling(EH_NORMAL, NULL) { + zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "onfinish", NULL, param); + } end_error_handling(); zval_ptr_dtor(¶m); }