hashtable==zend_array now
[m6w6/ext-http] / php_http_client.c
index 4e55356ed4abf2f86f8c2a62914025c65d7b6f7e..22fc6ca0497960ec60a2a8a58c648415c3cbfcaf 100644 (file)
@@ -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)