Nikita Popov
4aab08b64c
Properly free resources when generator return value not used
...
To keep things clean two new functions are introduced:
zend_clean_and_cache_symbol_table(HashTable *symbol_table)
zend_free_compiled_variables(zval ***CVs, int num)
2012-05-28 06:43:18 +02:00
Nikita Popov
9f52c5c226
Fix generator creation when execute_data is not nested
...
This happens primarily when the generator is invoked from some internal
place like a dynamic function call.
2012-05-27 22:48:21 +02:00
Nikita Popov
64a643a4e3
Free loop variables
...
If the generator is closed before it has finished running, it may happen
that some FREE or SWITCH_FREE opcodes haven't been executed and memory is
leaked.
This fixes it by walking the brk_cont_array and manually freeing the
variables.
2012-05-27 17:14:20 +02:00
Nikita Popov
247bb737d5
Add support for generator methods
2012-05-27 03:50:31 +02:00
Nikita Popov
d49d3971e6
Close generator on return
2012-05-26 23:59:22 +02:00
Nikita Popov
5bb3a995c2
Implement return for generators
...
For generators ZEND_RETURN directly calls ZEND_VM_RETURN(), thus passing
execution back to the caller (zend_generator_resume).
This commit also adds a check that only return; is used in generators and
not return $value;.
2012-05-26 23:07:40 +02:00
Nikita Popov
fafce58683
Add YIELD opcode implementation
2012-05-26 22:44:53 +02:00
Nikita Popov
f627be5254
Add support for executing a zend_execute_data
...
This adds another function execute_ex(), which accepts a zend_execute_data
struct to run (contrary to execute(), which accepts a zend_op_array from
which it initialized the execute_data).
This needs a bit more cleanup.
2012-05-26 17:53:13 +02:00
Nikita Popov
9ce9a7e639
Add initial code for suspending execution
...
This is just some initial code, which is still quite broken (and needs to be
moved so it can be reused.)
2012-05-23 14:20:25 +02:00
Nikita Popov
5e763d9420
Allocate execute_data using malloc for generators
...
Generators need to switch the execute_data very often. If the execute_data
is allocated on the VM stack this operation would require to always copy
the structure (which is quite large). That's why the execution context is
allocated on the heap instead (only for generators obviously).
2012-05-22 23:17:59 +02:00
Nikita Popov
46fa26ab85
Make generator functions return a Generator object
...
Right now generator functions simply immediately return a new Generator
object (no suspension yet).
2012-05-20 14:45:01 +02:00
Nikita Popov
1cec3f12cc
Add ZEND_SUSPEND_AND_RETURN_GENERATOR opcode
...
If the function is a generator this opcode will be invoked right after
receiving the function arguments.
The current implementation is just a dummy.
2012-05-19 23:19:21 +02:00
Stanislav Malyshev
d03900dc92
fix bug #61782 - __clone/__destruct do not match other methods when checking access controls
2012-05-14 11:03:21 -07:00
Stanislav Malyshev
a0dff6fdca
fix bug #61782 - __clone/__destruct do not match other methods when checking access controls
2012-05-13 14:40:44 -07:00
Xinchen Hui
565892d4c0
Implement const array/string dereference
...
RFC:https://wiki.php.net/rfc/constdereference
2012-04-17 10:06:17 +08:00
Xinchen Hui
0876d7bb89
MFH: Fixed bug #61011 (Crash when an exception is thrown by __autoload accessing a static property)
2012-03-02 03:12:15 +00:00
Xinchen Hui
229e55632d
Fixed bug #61011 (Crash when an exception is thrown by __autoload accessing a static property)
2012-02-25 13:56:59 +00:00
Dmitry Stogov
3fe072f8a9
Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods
2012-01-30 10:51:02 +00:00
Dmitry Stogov
c95937e902
Fixed (disabled) inline-caching for ZEND_OVERLOADED_FUNCTION methods
2012-01-30 10:51:02 +00:00
Xinchen Hui
3a8a5bc843
WS, merged from trunk cause this issue, sorry
2012-01-26 01:28:37 +00:00
Xinchen Hui
bbd6ab2054
WS, merged from trunk cause this issue, sorry
2012-01-26 01:28:37 +00:00
Xinchen Hui
1207451239
Fixed bug #60825 (Segfault when running symfony 2 tests)
2012-01-26 01:21:35 +00:00
Xinchen Hui
6b1d3b3d10
Re-fixed bug #60825 (Segfault when running symfony 2 tests)
2012-01-24 14:39:45 +00:00
Xinchen Hui
a222954a45
Re-fixed bug #60825 (Segfault when running symfony 2 tests)
2012-01-24 14:39:45 +00:00
Xinchen Hui
cf54cc736b
Fixed bug #60825 (Segfault when running symfony 2 tests)
2012-01-21 17:13:53 +00:00
Felipe Pena
e4ca0ed09f
- Year++
2012-01-01 13:15:04 +00:00
Felipe Pena
8775a37559
- Year++
2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281
- Year++
2012-01-01 13:15:04 +00:00
Stanislav Malyshev
327a5828cd
Fix warning on non-numeric offsets
2011-12-22 03:22:42 +00:00
Stanislav Malyshev
0610ca459a
Fix warning on non-numeric offsets
2011-12-22 03:22:42 +00:00
Stanislav Malyshev
1f4f33afcf
implement the solution for isset/string offsets, fix bug #60362
2011-12-19 02:05:03 +00:00
Stanislav Malyshev
622412d8e6
implement the solution for isset/string offsets, fix bug #60362
2011-12-19 02:05:03 +00:00
Dmitry Stogov
cacf363957
Fixed bug #60104 (Segmentation Fault in pdo_sqlite when using sqliteCreateFunction())
2011-11-08 10:11:25 +00:00
Dmitry Stogov
e86830273b
Fixed bug #60104 (Segmentation Fault in pdo_sqlite when using sqliteCreateFunction())
2011-11-08 10:11:25 +00:00
Xinchen Hui
cae2f1381f
Fix bug #60169 Conjunction of ternary and list crashes PHP
2011-11-03 03:59:41 +00:00
Xinchen Hui
a9dbbf6dea
Fix bug #60169 Conjunction of ternary and list crashes PHP
2011-11-03 03:59:41 +00:00
Arnaud Le Blanc
ea5a61e39b
Improved ternary operator performance when returning arrays
2011-10-18 19:42:42 +00:00
Arnaud Le Blanc
07b7ba8b40
Improved ternary operator performance when returning arrays
2011-10-18 19:42:42 +00:00
Dmitry Stogov
4a25a7740d
Fixed ZE specific compile warnings (Bug #55629 )
2011-09-13 13:29:35 +00:00
Dmitry Stogov
e43ff1359e
Fixed ZE specific compile warnings (Bug #55629 )
2011-09-13 13:29:35 +00:00
Dmitry Stogov
5e923d23b4
Fixed bug #55305 (ref lost: 1st ref instantiated in class def, 2nd ref made w/o instantiating)
2011-08-01 15:23:16 +00:00
Dmitry Stogov
d4a80cfa8d
Fixed bug #55305 (ref lost: 1st ref instantiated in class def, 2nd ref made w/o instantiating)
2011-08-01 15:23:16 +00:00
Dmitry Stogov
ac1ae51a38
Fixed bug #54305 (Crash in gc_remove_zval_from_buffer)
2011-07-11 10:31:49 +00:00
Dmitry Stogov
a0974f2d59
Fixed bug #54305 (Crash in gc_remove_zval_from_buffer)
2011-07-11 10:31:49 +00:00
Dmitry Stogov
0f3e70fe01
Fixed bug #54305 (Crash in gc_remove_zval_from_buffer)
2011-07-11 10:31:49 +00:00
Felipe Pena
ae40e5f400
- Year++
2011-07-10 13:05:32 +00:00
Felipe Pena
31a69cd480
- Year++
2011-07-10 13:05:32 +00:00
Felipe Pena
327a9d45c9
- Year++
2011-07-10 13:05:32 +00:00
Dmitry Stogov
3931078e7f
Fixed bug #55135 (Array keys are no longer type casted in unset())
2011-07-06 12:04:02 +00:00
Dmitry Stogov
b7e124004f
Fixed bug #55135 (Array keys are no longer type casted in unset())
2011-07-06 12:04:02 +00:00