summaryrefslogtreecommitdiff
path: root/Zend/zend_generators.c
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2012-05-30 05:05:49 +0200
committerNikita Popov <nikic@php.net>2012-05-30 05:05:49 +0200
commit879016023566ce162be1d81e973bde9db76dd519 (patch)
tree8e9c9e335f8d5f2512ddc1d4445669c028a77b70 /Zend/zend_generators.c
parentbc08c2cf9485e20fea0eef7ab149cefdf9a3662e (diff)
downloadphp-git-879016023566ce162be1d81e973bde9db76dd519.tar.gz
Add auto-increment keys
When no key is explicitely yielded PHP will used auto-incrementing keys as a fallback. They behave the same as with arrays, i.e. the key is the successor of the largest previously used integer key.
Diffstat (limited to 'Zend/zend_generators.c')
-rw-r--r--Zend/zend_generators.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index d3d4b3f7a8..5c211b0e8b 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -116,6 +116,9 @@ static zend_object_value zend_generator_create(zend_class_entry *class_type TSRM
generator = emalloc(sizeof(zend_generator));
memset(generator, 0, sizeof(zend_generator));
+ /* The key will be incremented on first use, so it'll start at 0 */
+ generator->largest_used_integer_key = -1;
+
zend_object_std_init(&generator->std, class_type TSRMLS_CC);
object.handle = zend_objects_store_put(generator, NULL,