Dmitry Stogov
7651d64556
Optimized access to temporary and compiled VM variables
2012-12-04 10:14:39 +04:00
Dmitry Stogov
70f83f35d0
. 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.
2012-11-30 13:39:23 +04:00
Stanislav Malyshev
531e2533dd
Use zend_execute_internal always to call internal functions
2012-10-05 08:14:20 +02:00
Stanislav Malyshev
bda93f5405
use zend_execute_internal
2012-10-04 22:43:13 -07:00
Nikita Popov
526db7db14
Replace code with zend_clean_and_cache_symbol_table() call
...
I replaced other instances of this code with the function call, but missed
this one.
2012-09-16 21:54:48 +02:00
Nikita Popov
c9709bfbd7
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).
2012-07-20 16:09:06 +02:00
Xinchen Hui
eac33b454c
Typo when merging from trunk
2012-03-11 15:31:19 +00:00
Xinchen Hui
a38ffd5705
Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes)
2012-03-11 15:28:31 +00:00
Xinchen Hui
b7ae5e0d86
Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes)
2012-03-11 15:28:31 +00:00
Xinchen Hui
7536bf963d
Fixed bug #61273 (call_user_func_array with more than 16333 arguments leaks / crashes)
2012-03-11 15:28:31 +00:00
Xinchen Hui
5f99d789b5
MFH: Fixed bug #60978 (exit code incorrect)
2012-03-02 03:25:41 +00:00
Xinchen Hui
27df8b6ff0
Revert -r319102 and -r322922 in 5.4 branch since they introduce #60978
...
Fixed #60978 in trunk without reverting previous fix
#see http://news.php.net/php.internals/57789
2012-02-08 03:03:05 +00:00
Xinchen Hui
ff63c09e6f
Revert -r319102 and -r322922 in 5.4 branch since they introduce #60978
...
Fixed #60978 in trunk without reverting previous fix
#see http://news.php.net/php.internals/57789
2012-02-08 03:03:05 +00:00
Derick Rethans
33863b2cf8
- Reinstated correct return values after David's fix for #60218 .
2012-01-29 15:25:40 +00:00
Derick Rethans
2c1285a573
- Reinstated correct return values after David's fix for #60218 .
2012-01-29 15:25:40 +00:00
Dmitry Stogov
b515bfbdfb
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
2012-01-17 08:09:13 +00:00
Dmitry Stogov
032d140fd6
Improved traits implementation. Now to support __CLASS__ constant in traits php doesn't have to copy the complete compiled method, but can reuse the same code. The resolution of __CLASS__ constants in methods defined in traits are delayed till run-time. This approach also made possible to use __CLASS__ constant as default value for traits properties and method arguments.
2012-01-17 08:09:13 +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
Dmitry Stogov
f7278c161f
Fixed bug #60138 (GC crash with referenced array in RecursiveArrayIterator)
2011-11-18 12:43:53 +00:00
David Soria Parra
ce06b4397c
Fix #60218 (instantiating unknown class leads to memory leak in cli)
2011-11-12 17:05:08 +00:00
David Soria Parra
c4d5231a36
Fix #60218 (instantiating unknown class leads to memory leak in cli)
2011-11-12 17:05:08 +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
Pierre Joye
d566f0c88e
- fix build when no zend signal support
2011-09-08 09:17:21 +00:00
Pierre Joye
f20e705760
- fix build when no zend signal support
2011-09-08 09:17:21 +00:00
Rasmus Lerdorf
ca2234d18c
Make timeouts work again for shutdown functions.
...
Fixes the faling lang/045 test
2011-09-07 18:48:17 +00:00
Rasmus Lerdorf
2af36bd041
Make timeouts work again for shutdown functions.
...
Fixes the faling lang/045 test
2011-09-07 18:48:17 +00:00
Rasmus Lerdorf
80931fee0c
Since we have fci_cache = &fci_cache_local inside that block
...
and fci_cache is then later used outside the block, fci_cache_local
can't be block-scoped here
2011-08-07 00:50:46 +00:00
Rasmus Lerdorf
c44c0490d5
Since we have fci_cache = &fci_cache_local inside that block
...
and fci_cache is then later used outside the block, fci_cache_local
can't be block-scoped here
2011-08-07 00:50:46 +00:00
Ilia Alshanetsky
34d93f0c06
Zend Signal Handling
2011-06-22 14:23:21 +00:00
Ilia Alshanetsky
939875133a
Zend Signal Handling (see RFC: https://wiki.php.net/rfc/zendsignals )
...
This needs to go into 5.4 as well, but will wait for Pierre to review win32 situation
# Patch by Lucas Nealan, Arnaud Le Blanc, Brian Shire & Ilia Alshanetsky
2011-06-02 21:16:50 +00:00
Dmitry Stogov
5dcdf5c467
Fixed bug #54367 (Use of closure causes problem in ArrayAccess)
2011-05-11 06:58:33 +00:00
Dmitry Stogov
92e5b10c41
Fixed bug #54268 (Double free when destroy_zend_class fails)
2011-04-15 12:43:20 +00:00
Dmitry Stogov
50ce16deff
Fixed bug #54268 (Double free when destroy_zend_class fails)
2011-04-15 12:43:20 +00:00
Felipe Pena
927bf09c29
- Year++
2011-01-01 02:19:59 +00:00
Felipe Pena
0203cc3d44
- Year++
2011-01-01 02:17:06 +00:00
Dmitry Stogov
b88f7753a1
Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF)
2010-10-13 08:51:39 +00:00
Dmitry Stogov
f4173a8ece
Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF)
2010-10-13 08:51:39 +00:00
Dmitry Stogov
d3b6fbe39b
Fixed bug #52940 (call_user_func_array still allows call-time pass-by-reference). (cataphract@php.net)
2010-10-01 11:53:04 +00:00
Dmitry Stogov
f2df6a4a3e
- Improved memory usage
...
. zend_function.pass_rest_by_reference is replaced by
ZEND_ACC_PASS_REST_BY_REFERENCE in zend_function.fn_flags
. zend_function.return_reference is replaced by ZEND_ACC_RETURN_REFERENCE
in zend_function.fn_flags
. zend_arg_info.required_num_args removed. it was needed only for internal
functions. Now the first arg_info for internal function (which has special
meaning) is represented by zend_internal_function_info structure.
. zend_op_array.size, size_var, size_literal, current_brk_cont,
backpatch_count moved into CG(context), because they are used only during
compilation.
. zend_op_array.start_op is moved into EG(start_op), because it's used
only for 'interactive' execution of single top-level op-array.
. zend_op_array.done_pass_two is replaced by ZEND_ACC_DONE_PASS_TWO in
zend_op_array.fn_flags.
. op_array.vars array is trimmed (reallocated) during pass_two.
. zend_class_entry.constants_updated is replaced by
ZEND_ACC_CONSTANTS_UPDATED in zend_class_entry.ce_flags
. the size of zend_class_entry is reduced by sharing the same memory space
by different information for internal and user classes.
See zend_class_inttry.info union.
2010-09-15 07:38:52 +00:00
Dmitry Stogov
f0c8366a9e
- use interned strings for auto globals
...
- $GLOBALS became a JIT autoglobal, so it's initialized only if used (this may affect opcode caches)
2010-07-08 14:05:11 +00:00
Dmitry Stogov
1a1178a685
eliminated unnecessary iterations during request startup/shutdown
2010-07-06 11:40:17 +00:00
Felipe Pena
c4be9c3890
- Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::)
2010-05-26 00:00:58 +00:00
Felipe Pena
79d2aaf0f1
- Fixed bug #51905 (ReflectionParameter fails if default value is an array with an access to self::)
2010-05-26 00:00:58 +00:00
Dmitry Stogov
3c179430ec
Fixed crash in Zend/tests/unset_cv09.phpt
2010-04-26 13:51:46 +00:00
Antony Dovgal
a9a55f77c0
fix WS
2010-04-23 09:11:44 +00:00