diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-02-10 15:43:12 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-02-10 15:43:12 +0300 |
commit | 1eb4352143e42784a59b55e0e531a8faecc0033d (patch) | |
tree | 404ae11471af991680685889d292ca120aa76095 /ext/sockets | |
parent | 4a875e18fdebfe3af530a6c4367d893c1cb811ae (diff) | |
download | php-git-1eb4352143e42784a59b55e0e531a8faecc0033d.tar.gz |
Use new ZEND_HASH_FOREACH_... API.
Diffstat (limited to 'ext/sockets')
-rw-r--r-- | ext/sockets/conversions.c | 13 |
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; } |