1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 15:08:16 +02:00
Commit Graph

39 Commits

Author SHA1 Message Date
Xinchen Hui a666285bc2 Happy New Year 2013-01-01 16:37:09 +08: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
Nikita Popov a31fa55b44 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
2012-09-22 19:15:53 +02:00
Nikita Popov 4cf90e06c9 Fix lexing of nested heredoc strings in token_get_all()
This fixes bug #60097.

Before two global variables CG(heredoc) and CG(heredoc_len) were used to
track the current heredoc label. In order to support nested heredoc
strings the *previous* heredoc label was assigned as the token value of
T_START_HEREDOC and the language_parser.y assigned that to CG(heredoc).

This created a dependency of the lexer on the parser. Thus the
token_get_all() function, which accesses the lexer directly without
also running the parser, was not able to tokenize nested heredoc strings
(and leaked memory). Same applies for the source-code highlighting
functions.

The new approach is to maintain a heredoc_label_stack in the lexer, which
contains all active heredoc labels.

As it is no longer required, T_START_HEREDOC and T_END_HEREDOC now don't
carry a token value anymore.

In order to make the work with zend_ptr_stack in this context more
convenient I added a new function zend_ptr_stack_top(), which retrieves the
top element of the stack (similar to zend_stack_top()).
2012-03-31 21:53:30 +02:00
Felipe Pena 8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena 0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Dmitry Stogov bc1f1d25fa zend_ptr_stack allocation is delayed before the actual usage 2010-07-09 07:31:18 +00:00
Dmitry Stogov 453b49ed20 Added a number of small performance tweaks and optimizations
. ZEND_RECV now always has IS_CV as its result
  . ZEND_CATCH now has to be used only with constant class names
  . ZEND_FETCH_DIM_? may fetch array and dimension operans in a different order
2010-04-20 11:16:39 +00:00
Sebastian Bergmann d2281d1dff sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php 2010-01-05 20:46:53 +00:00
Arnaud Le Blanc 85b9327836 MFH: better fix for #48409 , #48428 , #48228 2009-06-05 11:21:31 +00:00
Arnaud Le Blanc 2403a58011 MFH: better fix for #48409 , #48428 , #48228 2009-06-01 15:07:42 +00:00
Sebastian Bergmann 08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Sebastian Bergmann d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Johannes Schlüter e6dff0caa4 - MFH: Allow persistent zent_ptr_stacks (patch by Andrey Hristov) 2007-11-09 10:34:27 +00:00
Sebastian Bergmann 4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Andi Gutmans 61e93ccfe8 - Update copyright notices to 2006 2006-01-04 23:53:05 +00:00
Dmitry Stogov c095e20ca8 Fixed bug #31177 (menory leaks and corruption because of incorrect refcounting) 2005-10-20 07:23:26 +00:00
foobar 916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Andi Gutmans d7c839d54f - More ptr_stack optimizations and cleanups 2004-07-30 21:00:37 +00:00
Andi Gutmans 138ef9a43e - Improve performance by inlining zend_ptr_stack_n_push(). var_args can
usually not be inlined by compilers.
2004-07-30 20:16:40 +00:00
Hartmut Holzgraefe 3a3f95a399 wrap ZEND_API prototypes into BEGIN_EXTERN_C/END_EXTERN_C
for C++ extension support
2004-02-18 22:44:40 +00:00
foobar ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
James Cox f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
foobar 333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Sebastian Bergmann 2c5d4b8c23 Bump year. 2002-12-31 15:59:15 +00:00
Sebastian Bergmann 62dc854bb0 Happy New Year. 2002-01-06 15:21:36 +00:00
Sebastian Bergmann d863d52a5d Update headers. 2001-12-11 15:16:21 +00:00
Zeev Suraski 87e3924379 Remove the last couple of bogus inlines 2001-07-11 17:18:22 +00:00
Andi Gutmans d2c9e8074c - Update copyright year 2001-02-26 05:43:27 +00:00
Sascha Schumann b982307dd1 Change header protection macros to conform to standard.
Draft 3 of IEEE 1003.1 200x, "2.2 The Compilation Environment"

    All identifiers that begin with an underscore and either an uppercase
    letter or another underscore are always reserved for any use by the
    implementation.
2000-07-02 23:54:19 +00:00
Zeev Suraski 34c2b0a07c - Add restore_error_handler()
error_handler's are now stored in a stack
2000-06-17 18:04:58 +00:00
Zeev Suraski 5e55e47f7f It's official now... 2000-03-06 05:26:39 +00:00
Zeev Suraski 0ac9536d99 (c) patch 2000-02-19 22:46:42 +00:00
Zeev Suraski 7f27821c5f inline functions cannot accept varargs 1999-12-25 23:52:00 +00:00
Andi Gutmans e9e7bc6db3 - Add ptr_stack_n_{push,pop} in order to speed up function calls a bit.
There seems to be no reason for stack->top in the ptr_stack except for
  when realloc()'in the stack. I think I'll remove it.
1999-07-30 11:55:53 +00:00
Zeev Suraski 8d1de13aef 0.91 update 1999-07-19 20:02:12 +00:00
Zeev Suraski b5b1117760 License update 1999-07-16 14:58:16 +00:00
Zeev Suraski 1250c43a39 * Add struct name to all typedef's so that they can be debugged with MSVC
* Fix an AiCount bug - list(...) = $var was using $var multiple times, and thus
causing AiCount to be decreased multiple times even though it was increased only
once for $var.  Mark all FETCH_DIM's so that they won't decrease AiCount, and only
decrease AiCount on the last FETCH_DIM.
* Fix a stupid bug - forgot to pass CLS_C to some compiler function.  For some reason
MSVC doesn't report these :I
1999-05-22 16:10:51 +00:00
Andi Gutmans 573b46022c Zend Library 1999-04-07 18:10:10 +00:00