summaryrefslogtreecommitdiff
path: root/Zend/zend_generators.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-02-12 14:29:51 +0400
committerDmitry Stogov <dmitry@zend.com>2014-02-12 14:29:51 +0400
commit4e66abad54b25ca367fcb6da78524e3c4024e2a0 (patch)
tree77632bac13854d5ffcfb9ce2f92ea0ce461db44e /Zend/zend_generators.c
parente2ea9a7319c2d7f84d174cf76524c9b92c1541d1 (diff)
downloadphp-git-4e66abad54b25ca367fcb6da78524e3c4024e2a0.tar.gz
Use better data structures (incomplete) - refactored return_value handling
Diffstat (limited to 'Zend/zend_generators.c')
-rw-r--r--Zend/zend_generators.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index e379e98968..491fbe24a7 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -282,7 +282,7 @@ ZEND_API void zend_generator_create_zval(zend_op_array *op_array, zval *return_v
opline_ptr = EG(opline_ptr);
current_symbol_table = EG(active_symbol_table);
EG(active_symbol_table) = NULL;
- execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC);
+ execute_data = zend_create_execute_data_from_op_array(op_array, return_value, 0 TSRMLS_CC);
EG(active_symbol_table) = current_symbol_table;
EG(current_execute_data) = current_execute_data;
EG(opline_ptr) = opline_ptr;
@@ -331,7 +331,6 @@ ZEND_API void zend_generator_resume(zend_generator *generator TSRMLS_DC) /* {{{
{
/* Backup executor globals */
-//??? zval **original_return_value_ptr_ptr = EG(return_value_ptr_ptr);
zend_execute_data *original_execute_data = EG(current_execute_data);
zend_op **original_opline_ptr = EG(opline_ptr);
zend_op_array *original_active_op_array = EG(active_op_array);
@@ -343,10 +342,6 @@ ZEND_API void zend_generator_resume(zend_generator *generator TSRMLS_DC) /* {{{
ZVAL_COPY_VALUE(&original_This, &EG(This));
- /* We (mis)use the return_value_ptr_ptr to provide the generator object
- * to the executor, so YIELD will be able to set the yielded value */
-//??? EG(return_value_ptr_ptr) = (zval **) generator;
-
/* Set executor globals */
EG(current_execute_data) = generator->execute_data;
EG(opline_ptr) = &generator->execute_data->opline;
@@ -371,7 +366,6 @@ ZEND_API void zend_generator_resume(zend_generator *generator TSRMLS_DC) /* {{{
generator->flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING;
/* Restore executor globals */
-//??? EG(return_value_ptr_ptr) = original_return_value_ptr_ptr;
EG(current_execute_data) = original_execute_data;
EG(opline_ptr) = original_opline_ptr;
EG(active_op_array) = original_active_op_array;