diff options
| author | Nikita Popov <nikic@php.net> | 2012-05-30 05:05:49 +0200 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2012-05-30 05:05:49 +0200 |
| commit | 879016023566ce162be1d81e973bde9db76dd519 (patch) | |
| tree | 8e9c9e335f8d5f2512ddc1d4445669c028a77b70 /Zend/zend_generators.c | |
| parent | bc08c2cf9485e20fea0eef7ab149cefdf9a3662e (diff) | |
| download | php-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.c | 3 |
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, |
