summaryrefslogtreecommitdiff
path: root/ext/sockets
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-02-10 15:43:12 +0300
committerDmitry Stogov <dmitry@zend.com>2015-02-10 15:43:12 +0300
commit1eb4352143e42784a59b55e0e531a8faecc0033d (patch)
tree404ae11471af991680685889d292ca120aa76095 /ext/sockets
parent4a875e18fdebfe3af530a6c4367d893c1cb811ae (diff)
downloadphp-git-1eb4352143e42784a59b55e0e531a8faecc0033d.tar.gz
Use new ZEND_HASH_FOREACH_... API.
Diffstat (limited to 'ext/sockets')
-rw-r--r--ext/sockets/conversions.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/sockets/conversions.c b/ext/sockets/conversions.c
index 963db66818..f6a86315b1 100644
--- a/ext/sockets/conversions.c
+++ b/ext/sockets/conversions.c
@@ -217,17 +217,14 @@ static unsigned from_array_iterate(const zval *arr,
void **args,
ser_context *ctx)
{
- HashPosition pos;
unsigned i;
zval *elem;
char buf[sizeof("element #4294967295")];
char *bufp = buf;
/* Note i starts at 1, not 0! */
- for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(arr), &pos), i = 1;
- !ctx->err.has_error
- && (elem = zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), &pos)) != NULL;
- zend_hash_move_forward_ex(Z_ARRVAL_P(arr), &pos), i++) {
+ i = 1;
+ ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(arr), elem) {
if (snprintf(buf, sizeof(buf), "element #%u", i) >= sizeof(buf)) {
memcpy(buf, "element", sizeof("element"));
}
@@ -236,7 +233,11 @@ static unsigned from_array_iterate(const zval *arr,
func(elem, i, args, ctx);
zend_llist_remove_tail(&ctx->keys);
- }
+ if (ctx->err.has_error) {
+ break;
+ }
+ i++;
+ } ZEND_HASH_FOREACH_END();
return i -1;
}