History log of /PHP-7.0/Zend/zend_generators.c (Results 126 – 150 of 178)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# a9a5f7ac 11-Dec-2012 Dmitry Stogov

- generators API exported for extensions
- improved RETURN sequence to avoid redundant check if op_array is a generator


Revision tags: php-5.3.20RC1, php-5.4.10RC1
# 7651d645 04-Dec-2012 Dmitry Stogov

Optimized access to temporary and compiled VM variables


# 5db372fb 30-Nov-2012 Felipe Pena

- Fixed ZTS build


# 70f83f35 30-Nov-2012 Dmitry Stogov

. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocate

. The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operatins don't require checks for stack overflow any more.
. Generators implementation was improved using the new VM stack. Now it's a bit more clear and faster.

show more ...


# 60871e51 24-Nov-2012 Nikita Popov

Fix bug #63596: finally in generators segfaults

EX(fast_ret) wasn't initialized in this case so the code ended up
dereferencing an invalid pointer after the jump.


# eb4825b5 22-Nov-2012 Dmitry Stogov

Improved "finally" im[plementation


Revision tags: php-5.3.19, php-5.4.9, php-5.5.0alpha1, php-5.3.19RC1, php-5.4.9RC1
# 7bcb8780 04-Nov-2012 Xinchen Hui

Fixed bug #63428 (The behavior of execute() changed)


Revision tags: php-5.3.18, php-5.4.8, php-5.3.18RC1, php-5.4.8RC1
# a31fa55b 22-Sep-2012 Nikita Popov

Fixed bug #63132

EG(arg_types_stack) is now also backed up when generators are used. This
allows the use of yield in nested method calls.

This commit adds two new functions to t

Fixed bug #63132

EG(arg_types_stack) is now also backed up when generators are used. This
allows the use of yield in nested method calls.

This commit adds two new functions to the zend_ptr_stack API:

zend_ptr_stack_push_from_memory
zend_ptr_stack_pop_into_memory

both taking the following arguments:

zend_ptr_stack *stack, int count, void **pointers

show more ...


# a47c11a1 16-Sep-2012 Nikita Popov

Fix two op_array -> function cast warnings


Revision tags: php-5.3.17, php-5.4.7
# 4a7d1b4e 05-Sep-2012 Pierre Joye

- fix build, declarations must be 1st in a contextgit checkout -f master


# 72473962 05-Sep-2012 Dmitry Stogov

Fixed bug #62991 (Segfault with generator and closure)


# dbc7809b 29-Aug-2012 Nikita Popov

Fix typos


# bef79588 29-Aug-2012 Nikita Popov

Fix segfault when traversing a by-ref generator twice

If you try to traverse an already closed generator an exception will now be
thrown.

Furthermore this changes the error for

Fix segfault when traversing a by-ref generator twice

If you try to traverse an already closed generator an exception will now be
thrown.

Furthermore this changes the error for traversing a by-val generator by-ref
from an E_ERROR to an Exception.

show more ...


# cc07038f 29-Aug-2012 Nikita Popov

Make sure that exception is thrown on rewind() after closing too


Revision tags: php-5.4.7RC1
# f53225a9 25-Aug-2012 Nikita Popov

Fix several issues and allow rewind only at/before first yield

* Trying to resume a generator while it is already running now throws a
fatal error.
* Trying to use yield in fina

Fix several issues and allow rewind only at/before first yield

* Trying to resume a generator while it is already running now throws a
fatal error.
* Trying to use yield in finally while the generator is being force-closed
(by GC) throws a fatal error.
* Rewinding after the first yield now throws an Exception

show more ...


# 4d8edda3 24-Aug-2012 Nikita Popov

Run finally if generator is closed before finishing


# f45a0f31 20-Aug-2012 Nikita Popov

Disallow serialization and unserialization


# 05f10480 20-Aug-2012 Nikita Popov

Drop Generator::close() method


Revision tags: php-5.3.16, php-5.4.6, php-5.4.6RC1
# 268740d9 26-Jul-2012 Nikita Popov

Fix implementation of Iterator interface

It looks like you have to implement the Iterator interface *before*
assigning get_iterator. Otherwise the structure for user iterators isn't

Fix implementation of Iterator interface

It looks like you have to implement the Iterator interface *before*
assigning get_iterator. Otherwise the structure for user iterators isn't
correctly zeroed out.

Additionaly I'm setting class_entry->iterator_funcs.funcs now. Not sure if
this is strictly necessary, but better safe than sorry ;)

show more ...


# 94b2ccae 22-Jul-2012 Nikita Popov

Fix throwing of exceptions within a generator

If a generator threw an exception and was iterated using foreach (i.e. not
manually) an infinite loop was triggered. The reason was that the

Fix throwing of exceptions within a generator

If a generator threw an exception and was iterated using foreach (i.e. not
manually) an infinite loop was triggered. The reason was that the exception
was not properly rethrown using zend_throw_exception_internal.

show more ...


# c9709bfb 19-Jul-2012 Nikita Popov

Remove asterix modifier (*) for generators

Generators are now automatically detected by the presence of a `yield`
expression in their body.

This removes the ZEND_SUSPEND_AND_RET

Remove asterix modifier (*) for generators

Generators are now automatically detected by the presence of a `yield`
expression in their body.

This removes the ZEND_SUSPEND_AND_RETURN_GENERATOR opcode. Instead
additional checks for ZEND_ACC_GENERATOR are added to the fcall_common
helper and zend_call_function.

This also adds a new function zend_generator_create_zval, which handles
the actual creation of the generator zval from an op array.

I feel like I should deglobalize the zend_create_execute_data_from_op_array
code a bit. It currently changes EG(current_execute_data) and
EG(opline_ptr) which is somewhat confusing (given the name).

show more ...


Revision tags: php-5.4.5
# 85f077ce 17-Jul-2012 Nikita Popov

Add support by yielding by-reference


Revision tags: php-5.3.15, php-5.3.15RC1, php-5.4.5RC1
# ab75ed6b 23-Jun-2012 Nikita Popov

Disallow closing a generator during its execution

If a generator is closed while it is running an E_WARNING is thrown and the
call is ignored. Maybe a fatal error should be thrown instea

Disallow closing a generator during its execution

If a generator is closed while it is running an E_WARNING is thrown and the
call is ignored. Maybe a fatal error should be thrown instead?

show more ...


# 14766e14 23-Jun-2012 Nikita Popov

Pass zend_generator directly to Zend VM

Previously the zval* of the generator was passed into the VM by misusing
EG(return_value_ptr_ptr). Now the zend_generator* itself is directly pass

Pass zend_generator directly to Zend VM

Previously the zval* of the generator was passed into the VM by misusing
EG(return_value_ptr_ptr). Now the zend_generator* itself is directly passed
in. This saves us from always having to pass the zval* around everywhere.

show more ...


# 04e781f0 22-Jun-2012 Nikita Popov

Implement get_iterator

This implements the get_iterator handler for Generator objects, thus making
direct foreach() iteration significantly faster.


12345678