X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_client.c;h=22fc6ca0497960ec60a2a8a58c648415c3cbfcaf;hp=4e55356ed4abf2f86f8c2a62914025c65d7b6f7e;hb=1bef05c9e90799c57722bdb4865e6829373fee20;hpb=be9585b914061f84c5d5939673d29ecc048ab1d7 diff --git a/php_http_client.c b/php_http_client.c index 4e55356..22fc6ca 100644 --- a/php_http_client.c +++ b/php_http_client.c @@ -50,7 +50,7 @@ static int apply_driver_list(zval *p, void *arg) php_http_client_driver_t *d = Z_PTR_P(p); zval zname; - ZVAL_STR(&zname, d->driver_name); + ZVAL_STR_COPY(&zname, d->driver_name); zend_hash_next_index_insert(arg, &zname); return ZEND_HASH_APPLY_KEEP; @@ -860,9 +860,11 @@ static int notify(zend_object_iterator *iter, void *puser) struct notify_arg *arg = puser; if ((observer = iter->funcs->get_current_data(iter))) { - return php_http_object_method_call(arg->cb, observer, NULL, arg->argc, arg->args); + if (SUCCESS == php_http_object_method_call(arg->cb, observer, NULL, arg->argc, arg->args)) { + return ZEND_HASH_APPLY_KEEP; + } } - return FAILURE; + return ZEND_HASH_APPLY_STOP; } ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_notify, 0, 0, 0)