diff options
Diffstat (limited to 'Zend/zend_generators.h')
-rw-r--r-- | Zend/zend_generators.h | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/Zend/zend_generators.h b/Zend/zend_generators.h index 2373a1a7c8..5d1264cc4f 100644 --- a/Zend/zend_generators.h +++ b/Zend/zend_generators.h @@ -25,18 +25,10 @@ BEGIN_EXTERN_C() extern ZEND_API zend_class_entry *zend_ce_generator; -typedef struct _zend_generator_iterator { - zend_object_iterator intern; - - /* The generator object zval has to be stored, because the iterator is - * holding a ref to it, which has to be dtored. */ - zval *object; -} zend_generator_iterator; - typedef struct _zend_generator { zend_object std; - zend_generator_iterator iterator; + zend_object_iterator *iterator; /* The suspended execution context. */ zend_execute_data *execute_data; @@ -45,11 +37,11 @@ typedef struct _zend_generator { zend_vm_stack stack; /* Current value */ - zval *value; + zval value; /* Current key */ - zval *key; + zval key; /* Variable to put sent value into */ - zval **send_target; + zval *send_target; /* Largest used integer key for auto-incrementing keys */ long largest_used_integer_key; @@ -62,7 +54,7 @@ static const zend_uchar ZEND_GENERATOR_FORCED_CLOSE = 0x2; static const zend_uchar ZEND_GENERATOR_AT_FIRST_YIELD = 0x4; void zend_register_generator_ce(TSRMLS_D); -ZEND_API zval *zend_generator_create_zval(zend_op_array *op_array TSRMLS_DC); +ZEND_API void zend_generator_create_zval(zend_execute_data *call, zend_op_array *op_array, zval *return_value TSRMLS_DC); ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished_execution TSRMLS_DC); ZEND_API void zend_generator_resume(zend_generator *generator TSRMLS_DC); |