Commit Graph

7193 Commits

Author SHA1 Message Date
Nikita Popov
bcc7d976f3 Set EG(current_execute_data)
This fixes several issues. In particular it makes method generators work
properly and also allows generators using a symbol table.
2012-05-28 06:06:30 +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
39d3d5ec13 Add first real generator test
The test implements an xrange() function (the generator version of range()).
2012-05-27 00:50:27 +02:00
Nikita Popov
cbfa96cad5 Remove wrong dtor call 2012-05-27 00:25:12 +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
1a99d1c887 Add way to pass generator object to opcode handlers
The generator zval is put into the return_value_ptr_ptr.
2012-05-26 19:40:29 +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
Stanislav Malyshev
b187c35f23 Merge branch 'pull-request/54'
* pull-request/54:
  Allow arbitrary expressions for empty()

    This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

    The change allows passing the result of function calls and other
    expressions to the empty() language construct. This is accomplished by
    simply rewriting empty(expr) to !expr.

    The change does not affect the suppression of errors when using empty()
    on variables. empty($undefinedVar) will continue not to throw errors.
    When an expression is used inside empty() on the other hand, errors will
    not be suppressed. Thus empty($undefinedVar + $somethingElse) *will*
    throw a notice.

    The change also does not make empty() into a real function, so using
    'empty' as a callback is still not possible.

    In addition to the empty() changes the commit adds nicer error messages
    when isset() is used on function call results or other expressions.
2012-05-24 14:18:12 -05:00
Gustavo André dos Santos Lopes
d4fd95e292 Merge branch '5.4' 2012-05-24 11:09:18 +02:00
Nuno Lopes
58d2203317 add support for the alloc_size __attribute__ (through ZEND_ATTRIBUTE_ALLOC_SIZE and ZEND_ATTRIBUTE_ALLOC_SIZE2
requires GCC >= 4.3 or clang >= 3.2 to perform anything useful
2012-05-23 22:18:01 -04:00
Gustavo André dos Santos Lopes
acd711685a Fixed bug #62097
This fixes the fix for bug #54547 in 32-bit machines by accepting
float comparisons in 32-bit machines as long as the integer is
not larger than the mantissa.
2012-05-23 18:55:36 -05:00
Nikita Popov
ececcbce0e Allow calling zend_vm_gen from everywhere
Before one could only call it with cwd=Zend.
2012-05-23 20:40:21 +02:00
Nikita Popov
2c5ecb4fea Add dummy Iterator implementation
This simply adds dummy rewind/valid/current/key/next methods to Generator.
2012-05-23 16:44:58 +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
Xinchen Hui
9126bc790a Merge branch 'PHP-5.4'
* PHP-5.4:
  Use free instead of efree
2012-05-21 19:06:50 +08:00
Xinchen Hui
4c9a11c857 Use free instead of efree 2012-05-21 19:02:45 +08:00
Xinchen Hui
fba724d2f7 Merge branch 'PHP-5.4'
* PHP-5.4:
  Use emalloc instead of malloc
2012-05-21 18:59:16 +08:00
Xinchen Hui
bbcea230e1 Use emalloc instead of malloc 2012-05-21 18:58:19 +08:00
Dmitry Stogov
90e23107a2 Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution) 2012-05-21 14:04:33 +04:00
Dmitry Stogov
2ae8d2fbfb Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution) 2012-05-21 13:57:41 +04:00
Dmitry Stogov
c8f47a8e7c Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution) 2012-05-21 13:46:07 +04:00
Dmitry Stogov
7632a32ef9 Fixed bug #61998 (Using traits with method aliases appears to result in crash during execution) 2012-05-21 12:53:21 +04: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
40b7533576 Add some boilerplate code for Generator class
The Generator class now uses a zend_generator struct, so it'll be able to
store additional info.

This commit also ensures that Generator cannot be directly instantiated
and extended. The error tests are now in a separate folder from the
(yet-to-come) functional tests.
2012-05-20 14:19:16 +02:00
Nikita Popov
ca59e5464d Add empty Generator class 2012-05-20 00:03:27 +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
Nikita Popov
e14cfafcbf Add zend_do_suspend_if_generator calls
The execution of generator functions will be suspended right after the
arguments were RECVed. This will be done in zend_do_suspend_if_generator.
2012-05-19 20:19:45 +02:00
Nikita Popov
fd2a109f86 Add error if yield is used outside a generator
The yield statement can only be used in generator functions, which are
marked with an asterix.
2012-05-19 18:49:27 +02:00
Nikita Popov
9b51a3b96d Minor code cleanup
The block for the foreach separator was nested unnecessary. This commit
simply removes that nesting.
2012-05-19 14:21:49 +02:00
Nikita Popov
252f623464 Add flag for generator functions
Generator functions have to specify the * (asterix) modifier after the
function keyword. If they do so the ZEND_ACC_GENERATOR flag is added to
the fn_flags.
2012-05-19 14:18:20 +02:00
Nikita Popov
9b101ac8b3 Add T_YIELD "yield" keyword 2012-05-15 18:30:48 +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
47db8a9aa1 fix bug #54547 2012-05-14 11:03:20 -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
Stanislav Malyshev
9344bf193c fix bug #54547 2012-05-13 14:40:44 -07:00
Nikita Popov
ec061a93c5 Allow arbitrary expressions for empty()
This change is as per RFC https://wiki.php.net/rfc/empty_isset_exprs.

The change allows passing the result of function calls and other
expressions to the empty() language construct. This is accomplished by
simply rewriting empty(expr) to !expr.

The change does not affect the suppression of errors when using empty()
on variables. empty($undefinedVar) will continue not to throw errors.
When an expression is used inside empty() on the other hand, errors will
not be suppressed. Thus empty($undefinedVar + $somethingElse) *will*
throw a notice.

The change also does not make empty() into a real function, so using
'empty' as a callback is still not possible.

In addition to the empty() changes the commit adds nicer error messages
when isset() is used on function call results or other expressions.
2012-05-13 14:56:51 +02:00
Xinchen Hui
5852e5f48d Merge branch 'PHP-5.4'
* PHP-5.4:
  Fixed Bug #62005 (unexpected behavior when incrementally assigning to a member of a null object)
  fix stack overflow in php_intlog10abs()
  fix stack overflow in php_intlog10abs()
2012-05-12 13:21:49 +08:00
Xinchen Hui
6a5095582a Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed Bug #62005 (unexpected behavior when incrementally assigning to a member of a null object)
  fix stack overflow in php_intlog10abs()

Conflicts:
	Zend/zend_execute.c
2012-05-12 13:19:55 +08:00
Xinchen Hui
3332943c9d Fixed Bug #62005 (unexpected behavior when incrementally assigning to a member of a null object) 2012-05-12 13:13:44 +08:00
Xinchen Hui
e7934c0ffa Merge branch 'PHP-5.4' 2012-05-11 20:27:07 +08:00
Reeze Xia
0cb4849e53 Cleanup useless function declaration for traits 2012-05-11 16:52:12 +08:00
Xinchen Hui
6b16f7cd69 Merge branch 'PHP-5.4' 2012-05-03 22:40:51 +08:00
Xinchen Hui
72f19e9a8b Fixed bug #61922 (ZTS build doesn't accept zend.script_encoding config) 2012-05-03 22:39:53 +08:00
Xinchen Hui
e022bfe34a Merge remote-tracking branch 'origin/PHP-5.4'
* origin/PHP-5.4:
  Fixed test bug #61892
2012-05-03 20:00:10 +08:00
Xinchen Hui
d74d88fbb9 Fixed test bug #61892 2012-05-03 19:56:49 +08:00
Xinchen Hui
604d11ee6c Merge remote-tracking branch 'origin/PHP-5.4' 2012-05-03 18:41:45 +08:00
Xinchen Hui
75d23f5714 Merge remote-tracking branch 'origin/PHP-5.3' into PHP-5.4
* origin/PHP-5.3:
  Fix typo
2012-05-03 18:40:57 +08:00
Xinchen Hui
bbf8a50281 Fix typo
picked form pull request of reeze.xia@gmail.com
2012-05-03 18:39:03 +08:00
Felipe Pena
1c2c620a58 - Regenerated files 2012-04-30 15:57:09 -03:00
Felipe Pena
4deb0f1a0a - Regenerated files 2012-04-30 15:57:00 -03:00
Felipe Pena
45ef3c759e Merge branch 'PHP-5.4'
* PHP-5.4:
  - Fixed Windows build
2012-04-30 15:56:15 -03:00
Felipe Pena
79961dccab - Fixed Windows build 2012-04-30 15:55:57 -03:00
Felipe Pena
1622843162 - Regenerated files 2012-04-30 10:35:28 -03:00
Felipe Pena
ea23192910 - Regenerated files 2012-04-30 10:35:11 -03:00
Felipe Pena
73b6150992 Merge branch 'PHP-5.4'
* PHP-5.4:
  - Changed last commit to use VK_ESCAPE on Windows
2012-04-30 10:31:59 -03:00
Felipe Pena
3120387617 - Changed last commit to use VK_ESCAPE on Windows 2012-04-30 10:31:49 -03:00
Felipe Pena
bbe9eec9a2 Merge branch 'PHP-5.4'
* PHP-5.4:
  - Fixed bug #61827 (incorrect \e processing on Windows) patch by: ab@php.net
2012-04-29 19:36:10 -03:00
Felipe Pena
cc5b995c78 - Fixed bug #61827 (incorrect \e processing on Windows) patch by: ab@php.net 2012-04-29 19:35:52 -03:00
Xinchen Hui
6b9e88d9e6 Merge branch 'PHP-5.4'
* PHP-5.4:
  Fixed bug #61761 ('Overriding' a private static method with a different signature causes crash)
2012-04-18 18:15:29 +08:00
Xinchen Hui
da6465a268 Fixed bug #61761 ('Overriding' a private static method with a different signature causes crash) 2012-04-18 18:13:27 +08:00
Xinchen Hui
565892d4c0 Implement const array/string dereference
RFC:https://wiki.php.net/rfc/constdereference
2012-04-17 10:06:17 +08:00
Stanislav Malyshev
363797e9af Merge branch 'PHP-5.4'
* PHP-5.4:
  Copy default properties of internal classes for different threads
2012-04-11 19:24:11 -07:00
Johannes Schlüter
82c05eeda9 Copy default properties of internal classes for different threads 2012-04-11 19:21:41 -07:00
Nikita Popov
b233de098d Fix bug #61681: Malformed grammar
Generate T_STRING_VARNAME only if it actually is one. This is only the case
for "${varname}" and "${varname[offset]}" so we can just add a check for
} or [ after the LABEL.
2012-04-09 18:26:38 +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
Gustavo André dos Santos Lopes
298e9d2932 Merge branch '5.4' 2012-03-28 08:58:09 +01:00
Gustavo André dos Santos Lopes
68990224be Merge branch '5.3' into 5.4
Zend/zend_language_scanner.c and Zend/zend_language_scanner_defs.h had to be changed manually.
2012-03-28 08:57:19 +01:00
Gustavo André dos Santos Lopes
c6e15455a3 Revert "- fix bug #61504, fix build errors on windows and possibly other"
This reverts commit 74ee335e3a.
2012-03-28 08:41:18 +01:00
Pierre Joye
13bd9c2c3d Merge branch 'PHP-5.4'
* PHP-5.4:
  - fix bug #61504, fix build errors on windows and possibly other

Conflicts:
	Zend/zend_language_scanner.c
	Zend/zend_language_scanner_defs.h
2012-03-28 02:15:02 +02:00
Pierre Joye
c195596280 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  - fix bug #61504, fix build errors on windows and possibly other

Conflicts:
	Zend/zend_language_scanner.c
	Zend/zend_language_scanner_defs.h
2012-03-28 02:11:06 +02:00
Pierre Joye
74ee335e3a - fix bug #61504, fix build errors on windows and possibly other 2012-03-28 01:59:41 +02:00
Xinchen Hui
6ba2e662e4 Implemented FR #60738 (Allow 'set_error_handler' to handle NULL)
The previous commit was reverted as Stas ask, so only commit this
to Truk now.
2012-03-24 19:41:11 +08:00
Xinchen Hui
d8f8e98d8e Improve set_exception_handler while doing reset 2012-03-24 19:38:40 +08:00
Xinchen Hui
aa7cdcd13d Merge branch 'PHP-5.4' of ../php-5.4 2012-03-24 19:28:43 +08:00
Xinchen Hui
872fdd153e Merge branch 'PHP-5.3' of ../php-5.3 into PHP-5.4 2012-03-24 19:26:27 +08:00
Xinchen Hui
9c99a89e8e Revert "Implemented FR #60738 (Allow 'set_error_handler' to handle NULL)"
This reverts commit fcae164ea6.
2012-03-24 19:26:02 +08:00
Xinchen Hui
2d21149743 Revert "Merge from PHP-5.4"
This reverts commit 9a87fe1c52.
2012-03-24 19:25:21 +08:00
Xinchen Hui
690afaffc8 Merge branch 'PHP-5.4' of ../php-5.4 2012-03-24 15:16:51 +08:00
Xinchen Hui
7ffc442927 Merge branch 'PHP-5.3' of ../php-5.3 into PHP-5.4 2012-03-24 15:15:27 +08:00
Xinchen Hui
fcae164ea6 Implemented FR #60738 (Allow 'set_error_handler' to handle NULL) 2012-03-24 15:13:10 +08:00
Xinchen Hui
9a87fe1c52 Merge from PHP-5.4
Improve set_exception_handler
2012-03-24 14:33:00 +08:00
Xinchen Hui
4130f5a43c Improve set_exception_handler
Remove useless alloc/free and return_value copy while doing reset
exception handler
2012-03-24 11:54:50 +08:00
Xinchen Hui
caa40dd323 Merge branch 'PHP-5.4'
* PHP-5.4:
  Improve set_exception_handler
2012-03-24 11:50:07 +08:00
Xinchen Hui
a2bca4e46f Improve set_exception_handler
Remove useless alloc/free and return_value copy while doing reset
exception handler
2012-03-24 11:46:29 +08:00
Xinchen Hui
3813f987d5 Merge branch 'PHP-5.4'
* PHP-5.4:
  Remove empty lines
2012-03-24 11:35:29 +08:00
Xinchen Hui
114d662d12 Remove empty lines 2012-03-24 11:35:13 +08:00
David Soria Parra
6e7284fb5b Merge branch 'PHP-5.4'
* PHP-5.4:
  Replace $Revision$ with $Id$ in keyword expansion enable files
  Enable $Id$ expansion for files with the $Revision$ keyword

Conflicts:
	ext/mysqlnd/mysqlnd.h
2012-03-20 17:59:33 +01:00
David Soria Parra
c918ca57a7 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Replace $Revision$ with $Id$ in keyword expansion enable files
  Enable $Id$ expansion for files with the $Revision$ keyword

Conflicts:
	ext/mysqlnd/mysqlnd.h
2012-03-20 17:58:58 +01:00
David Soria Parra
f7b10abae9 Replace $Revision$ with $Id$ in keyword expansion enable files 2012-03-20 17:53:47 +01:00
Xinchen Hui
943a4fed4e reduce memory usage 2012-03-12 14:52:02 +00:00
Xinchen Hui
438a30f1e7 reduce memory usage 2012-03-12 14:52:02 +00:00
Xinchen Hui
d845cfb12e reduce memory usage 2012-03-12 14:52:02 +00:00
Ilia Alshanetsky
2cc64c28f0 Fixed bug #60569 (Nullbyte truncates Exception $message). 2012-03-11 18:15:13 +00:00
Ilia Alshanetsky
d4f05fbffc Fixed bug #60569 (Nullbyte truncates Exception $message). 2012-03-11 18:15:13 +00:00
Ilia Alshanetsky
3d9824a798 Fixed bug #60569 (Nullbyte truncates Exception $message). 2012-03-11 18:15:13 +00: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
24603280d4 fix test 2012-03-11 14:44:07 +00:00
Derick Rethans
c9436c200e Fixed version numbers. 2012-03-06 18:34:10 +00:00
Derick Rethans
7afd050922 Fixed version numbers. 2012-03-06 18:34:10 +00:00
Derick Rethans
38e5089e85 Fixed version numbers. 2012-03-06 18:34:10 +00:00
Derick Rethans
ecf8986a9a Add the ZEND_DONT_UNLOAD_MODULES environment variable for debugging to 5.3 as
well.
2012-03-06 18:25:55 +00:00
Dmitry Stogov
e182aeec10 Fixed module numbering 2012-03-05 12:47:25 +00:00
Dmitry Stogov
56a3f7eca8 Fixed module numbering 2012-03-05 12:47:25 +00:00
Dmitry Stogov
ecdf201214 Fixed module numbering 2012-03-05 12:47:25 +00:00
Stefan Marr
520d07d86a Fixed Bug #61052 (Missing error check in trait 'insteadof' clause) 2012-03-04 19:34:19 +00:00
Stefan Marr
ffded0020b Fixed Bug #61052 (Missing error check in trait 'insteadof' clause) 2012-03-04 19:34:19 +00:00
Stefan Marr
34fe62619d Fixed Bug #60911 (Confusing error message when extending traits) 2012-03-04 18:33:33 +00:00
Stefan Marr
0ed3b00406 Fixed Bug #60911 (Confusing error message when extending traits) 2012-03-04 18:33:33 +00:00
Stefan Marr
60dfd64bf2 Fixed Bug #60717 (Order of traits in use statement can cause a fatal error)
# Compatibility is now correctly checked in both directions.
# Introduced helper method for the test.
2012-03-04 18:26:11 +00:00
Stefan Marr
0bb85e4b91 Fixed Bug #60717 (Order of traits in use statement can cause a fatal error)
# Compatibility is now correctly checked in both directions.
# Introduced helper method for the test.
2012-03-04 18:26:11 +00:00
Xinchen Hui
bacd820218 MFH: Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode) 2012-03-02 03:52:06 +00:00
Xinchen Hui
046e3e3889 MFH: Fixed bug #60573 (type hinting with "self" keyword causes weird errors) 2012-03-02 03:32:12 +00:00
Xinchen Hui
101e3e8aed MFH: Fixed bug #60978 (exit code incorrect) 2012-03-02 03:25:41 +00:00
Xinchen Hui
5f99d789b5 MFH: Fixed bug #60978 (exit code incorrect) 2012-03-02 03:25:41 +00: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
213145a6da MFH: Fixed bug #61072 (Memory leak when restoring an exception handler). 2012-03-02 02:56:08 +00:00
Xinchen Hui
0e4d46a3a7 MFH: Fix bug #61165 (Segfault - strip_tags()) 2012-03-02 02:51:57 +00:00
Pierrick Charron
1953161b8c Fixed bug #61225 (Lexing 0b0*+<NUM> incorectly) 2012-03-02 02:36:31 +00:00
Pierrick Charron
f7cd0588a9 Fixed bug #61225 (Lexing 0b0*+<NUM> incorectly) 2012-03-02 02:36:31 +00:00
Xinchen Hui
5f4ae28459 Improve fix for #61165, the previous one cause #43450 test failed 2012-02-26 14:56:26 +00:00
Xinchen Hui
1923ecfe25 Improve fix for #61165, the previous one cause #43450 test failed 2012-02-26 14:56:26 +00:00
Xinchen Hui
c870ebe138 Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode) 2012-02-25 14:15:11 +00:00
Xinchen Hui
38b549ea2f Fixed bug #61087 (Memory leak in parse_ini_file when specifying invalid scanner mode) 2012-02-25 14:15:11 +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
Olivier DOUCET
e613889d50 more verbose skip reason in test files with not so obvious extension requirements 2012-02-25 12:10:41 +00:00
Olivier DOUCET
bdbcc1789d more verbose skip reason in test files with not so obvious extension requirements 2012-02-25 12:10:41 +00:00
Olivier DOUCET
ce535f1819 more verbose skip reason in test files with not so obvious extension requirements 2012-02-25 12:10:41 +00:00
Xinchen Hui
2d424a88fc merge test to 5.3, and remove xfail since the bug was fixed 2012-02-25 05:18:40 +00:00
Xinchen Hui
7334a4b14f merge test to 5.3, and remove xfail since the bug was fixed 2012-02-25 05:18:40 +00:00
Xinchen Hui
cfa9c90b20 Fixed bug #61165 (Segfault - strip_tags()) 2012-02-25 04:36:08 +00:00
Xinchen Hui
1ee93c83ff Fixed bug #61165 (Segfault - strip_tags()) 2012-02-25 04:36:08 +00:00
Xinchen Hui
c1322d2505 Fix test 2012-02-25 03:19:27 +00:00
Xinchen Hui
a57140324d typo 2012-02-25 03:16:28 +00:00
Xinchen Hui
4b86d681bb test for bug #61011 2012-02-25 03:14:16 +00:00
Xinchen Hui
f86d90d27b Tests for bug #61165 2012-02-25 03:12:54 +00:00
Etienne Kneuss
c51f737994 Fix #61095 (Lexing 0x0*+<NUM> incorrectly) 2012-02-20 18:28:57 +00:00
Etienne Kneuss
eefefddc0e Fix #61095 (Lexing 0x0*+<NUM> incorrectly) 2012-02-20 18:28:57 +00:00
Etienne Kneuss
86fcb9659e Fix #61095 (Lexing 0x0*+<NUM> incorrectly) 2012-02-20 18:28:57 +00:00
Stanislav Malyshev
dab17da38a make ZEND_SIGNALS configurable, off by default
also make ZEND_SIGNALS enabled and disabled binary-compatible
2012-02-16 01:51:45 +00:00
Stanislav Malyshev
fa9540e1f1 make ZEND_SIGNALS configurable, off by default
also make ZEND_SIGNALS enabled and disabled binary-compatible
2012-02-16 01:51:45 +00:00
Dmitry Stogov
49ce9b9bff Added ability to reset user opcode handlers (Yoram) 2012-02-14 09:27:08 +00:00
Dmitry Stogov
e16ec62d20 Added ability to reset user opcode handlers (Yoram) 2012-02-14 09:27:08 +00:00
Xinchen Hui
8f7381a6ea Fixed bug #61072 (Memory leak when restoring an exception handler) 2012-02-14 05:35:34 +00:00
Xinchen Hui
5d683614f9 Fixed bug #61072 (Memory leak when restoring an exception handler) 2012-02-14 05:35:34 +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
Rasmus Lerdorf
fe802ac2ad This test needs gc enabled 2012-02-05 06:09:22 +00:00
Rasmus Lerdorf
0c3685e223 This test needs gc enabled 2012-02-05 06:09:22 +00:00
Rasmus Lerdorf
6452b81b14 This test needs gc enabled 2012-02-05 06:09:22 +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
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
Derick Rethans
32edc70fe1 CS fixes. 2012-01-29 11:17:07 +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
Dmitry Stogov
3299a2673c Fixed Bug #60809 (TRAITS - PHPDoc Comment Style Bug)
Fixed some other traits related bugs (uninitialized variable, return => continue)
Removed some trait related redundant code and variables
2012-01-20 12:30:57 +00:00
Dmitry Stogov
f9e6af5ef1 Fixed Bug #60809 (TRAITS - PHPDoc Comment Style Bug)
Fixed some other traits related bugs (uninitialized variable, return => continue)
Removed some trait related redundant code and variables
2012-01-20 12:30:57 +00:00
Pierre Joye
902bbce03b - add test for bug #60771 2012-01-18 20:22:47 +00:00
Pierre Joye
d285c75819 - add test for bug #60771 2012-01-18 20:22:47 +00:00
Pierre Joye
1cc5588248 - add test for bug #60771 2012-01-18 20:22:47 +00:00
Dmitry Stogov
a1525977a0 Regenerated scanners 2012-01-17 08:11:32 +00:00
Dmitry Stogov
877f97cde1 Regenerated scanners 2012-01-17 08:11:32 +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
Xinchen Hui
d74a258f24 Fixed Bug #60573 (type hinting with "self" keyword causes weird errors) 2012-01-16 09:53:45 +00:00
Rui Hirokawa
7ba37f7921 fixed failed tests (backport from PHP_5_4/trunk). 2012-01-14 09:07:10 +00:00
Xinchen Hui
b31c12435c Fixed bug #60627 (httpd.worker segfault on startup with php_value) 2012-01-04 08:25:06 +00:00
Xinchen Hui
1c4f227553 Fixed bug #60627 (httpd.worker segfault on startup with php_value) 2012-01-04 08:25:06 +00:00
Nuno Lopes
71843491d3 regen for r321655 2012-01-01 22:52:23 +00:00
Nuno Lopes
d3f0eaee02 regen for r321655 2012-01-01 22:52:23 +00:00
Nuno Lopes
3a06ca721c regen for r321655 2012-01-01 22:52:23 +00:00
Nuno Lopes
bac57c94fb fix memory leak in compile_string when there's a parse error (used e.g. in eval or assert) 2012-01-01 22:45:58 +00:00
Nuno Lopes
a542baa720 fix memory leak in compile_string when there's a parse error (used e.g. in eval or assert) 2012-01-01 22:45:58 +00:00
Nuno Lopes
8b23cae172 fix memory leak in compile_string when there's a parse error (used e.g. in eval or assert) 2012-01-01 22:45:58 +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
6e3f7b800d Fixed tests 2011-12-28 10:12:43 +00:00
Dmitry Stogov
90a8da866b Fixed tests 2011-12-28 10:12:43 +00:00
Dmitry Stogov
a68e858d69 Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax) 2011-12-28 09:59:39 +00:00
Dmitry Stogov
c058385112 Fixed bug #60613 (Segmentation fault with $cls->{expr}() syntax) 2011-12-28 09:59:39 +00:00
Xinchen Hui
84ce790437 Fix #60613 (Segmentation fault with $cls->{expr}() syntax)
#now the behavior is like 5.3, a COMPILER_ERROR will be triggered
2011-12-28 06:46:12 +00:00
Xinchen Hui
113c0a8cc7 Fix #60613 (Segmentation fault with $cls->{expr}() syntax)
#now the behavior is like 5.3, a COMPILER_ERROR will be triggered
2011-12-28 06:46:12 +00:00
Xinchen Hui
20e2db2ce3 Fix bug #60611 (Segmentation fault with Cls::{expr}() syntax) 2011-12-27 08:38:18 +00:00
Xinchen Hui
2f4875bf92 Fix bug #60611 (Segmentation fault with Cls::{expr}() syntax) 2011-12-27 08:38:18 +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
Xinchen Hui
c1d5a5d7ef Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.
2011-12-19 16:48:18 +00:00
Xinchen Hui
2f62602c03 Fixed bug #60558 (Invalid read and writes)
Re-Fixed bug #60536 (Traits Segfault)
#Thanks to tony2001, I found the previous fix -r321089 is actually not a correct one.
#The key problem there is because the traits didn't correct set the property_info.offset
#for private properties. so here come the new fix.
2011-12-19 16:48:18 +00:00
Xinchen Hui
4a0c2b43f5 Revert previous bad fix, introduce memory leak 2011-12-19 12:00:09 +00:00
Xinchen Hui
7fcba87e68 Revert previous bad fix, introduce memory leak 2011-12-19 12:00:09 +00:00
Xinchen Hui
f3900513ca Codes standard & Remove useless empty lines 2011-12-19 10:05:48 +00:00
Xinchen Hui
1a4a527c37 Codes standard & Remove useless empty lines 2011-12-19 10:05:48 +00:00
Xinchen Hui
5256e7410e Fixed bug #60558 (Invalid read and writes) 2011-12-19 09:58:29 +00:00
Xinchen Hui
d589d33468 Fixed bug #60558 (Invalid read and writes) 2011-12-19 09:58:29 +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
Stefan Marr
525dd55eed Fixed inconsistent and broken handling of private properties in traits.
# The handling of private properties in classes is now consistent with private properties in traits.
# Perviously, privates could cause strict warnings, are were not properly merged into the class when
# the parent class had a private property of the same name. Now, we introduce it without notice,
# since it is a new and independent property, just like in normal classes.
# This problem was diagnosed while working on Bug #60536.
2011-12-17 14:26:39 +00:00
Stefan Marr
3dc9f0abe6 Fixed inconsistent and broken handling of private properties in traits.
# The handling of private properties in classes is now consistent with private properties in traits.
# Perviously, privates could cause strict warnings, are were not properly merged into the class when
# the parent class had a private property of the same name. Now, we introduce it without notice,
# since it is a new and independent property, just like in normal classes.
# This problem was diagnosed while working on Bug #60536.
2011-12-17 14:26:39 +00:00
Xinchen Hui
db63456a8d Reduce memory usage 2011-12-17 03:57:01 +00:00
Xinchen Hui
ac2a2fd196 Reduce memory usage 2011-12-17 03:57:01 +00:00
Xinchen Hui
01dc47631e Fixed bug #60536 (Traits Segfault)
# this is a tough one, I think I should explain
# Zend use zend_object->properties_table both as zval ** and zval ***
# if a zend_object->properties is not initialized, the properties_table is zval **
# while in rebuild_object_properties, zend will store the zval ** to zend_object->properties
# then stash the zval ***(ie, zobj->properties_table[0] is zval ** now) to  zobj->properties_table[0] 
# so when a zend_object inherit form multi parent and these parent have a same property_info->offset 
# properties, will result in a repeat zval **->zval ** transform, which will lead to a segmentfault
# *may be* this fix is not the best fix, we should not use this tricky way, and rewrite this mechanism.
2011-12-16 19:02:52 +00:00
Xinchen Hui
707f658c33 Fixed bug #60536 (Traits Segfault)
# this is a tough one, I think I should explain
# Zend use zend_object->properties_table both as zval ** and zval ***
# if a zend_object->properties is not initialized, the properties_table is zval **
# while in rebuild_object_properties, zend will store the zval ** to zend_object->properties
# then stash the zval ***(ie, zobj->properties_table[0] is zval ** now) to  zobj->properties_table[0] 
# so when a zend_object inherit form multi parent and these parent have a same property_info->offset 
# properties, will result in a repeat zval **->zval ** transform, which will lead to a segmentfault
# *may be* this fix is not the best fix, we should not use this tricky way, and rewrite this mechanism.
2011-12-16 19:02:52 +00:00
Pierrick Charron
489b86ff56 Coding standard 2011-12-06 06:44:22 +00:00
Pierrick Charron
3f2bcb7723 Coding standard 2011-12-06 06:44:22 +00:00
Xinchen Hui
95784cf6c5 remove irrelevant codes in test 2011-12-05 12:46:38 +00:00
Xinchen Hui
b92996bea6 remove irrelevant codes in test 2011-12-05 12:46:38 +00:00
Xinchen Hui
2f8c502d22 Add xfaild test for a secluded issue 2011-12-05 12:44:12 +00:00
Xinchen Hui
f30db67f58 Add xfaild test for a secluded issue 2011-12-05 12:44:12 +00:00
Xinchen Hui
d18a61aefb Fix typo 2011-12-05 12:33:56 +00:00
Xinchen Hui
5927617335 Fix typo 2011-12-05 12:33:56 +00:00
Dmitry Stogov
1d6c98a136 Fixed bug #60444 (Segmentation fault with include & class extending) 2011-12-05 09:20:12 +00:00
Dmitry Stogov
30328dcbab Fixed bug #60444 (Segmentation fault with include & class extending) 2011-12-05 09:20:12 +00:00
Dmitry Stogov
6cfbcb2268 Expose zend_signal_handler_unblock() to DSO extensions to allow usage of HANDLE_UNBLOCK_INTERRUPTIONS macro 2011-12-02 12:14:16 +00:00
Dmitry Stogov
0d4930577a Expose zend_signal_handler_unblock() to DSO extensions to allow usage of HANDLE_UNBLOCK_INTERRUPTIONS macro 2011-12-02 12:14:16 +00:00
Dmitry Stogov
f10b3bb556 Fixed icorrect key length after updating constant index 2011-12-01 13:58:29 +00:00
Dmitry Stogov
dc18f8427c Fixed icorrect key length after updating constant index 2011-12-01 13:58:29 +00:00
Felipe Pena
bfb1d38b9c - Added tests for bug #60350
patch by: php@mickweiss.com
2011-11-30 21:04:07 +00:00
Felipe Pena
d2de045007 - Added tests for bug #60350
patch by: php@mickweiss.com
2011-11-30 21:04:07 +00:00
Felipe Pena
a89f1d3cfa - Fixed bug #60350 (No string escape code for ESC (ascii 27), normally \e)
patch by: php at mickweiss dot com
2011-11-30 19:42:59 +00:00
Felipe Pena
3970865954 - Fixed bug #60350 (No string escape code for ESC (ascii 27), normally \e)
patch by: php at mickweiss dot com
2011-11-30 19:42:59 +00:00
Stefan Marr
db0888dfc1 Fixed Bug #60369 Crash with static property in trait 2011-11-23 21:24:34 +00:00
Stefan Marr
35d38e4772 Fixed Bug #60369 Crash with static property in trait 2011-11-23 21:24:34 +00:00
Antony Dovgal
a093491652 export zend_on_timeout handler from ZE 2011-11-22 03:39:12 +00:00
Antony Dovgal
e14819439c export zend_on_timeout handler from ZE 2011-11-22 03:39:12 +00:00
Stanislav Malyshev
aeae94a6af fix is_a reflection 2011-11-20 22:20:03 +00:00
Stanislav Malyshev
0f0ffd38c9 fix is_a reflection 2011-11-20 22:20:03 +00:00
Felipe Pena
b3b3eb8c2f - Fix tests 2011-11-19 18:01:26 +00:00
Felipe Pena
2bd90344a6 - Fix tests 2011-11-19 18:01:26 +00:00
Felipe Pena
ebd7dc5f88 - Fix tests 2011-11-19 18:01:26 +00:00
Felipe Pena
31ef559712 - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
14b5e775b0 - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
bc810a443d - Fixed bug #43200 (Interface implementation / inheritence not possible in abstract classes) 2011-11-19 13:36:03 +00:00
Felipe Pena
420fbb8274 - CS 2011-11-18 13:56:41 +00:00
Felipe Pena
cc8573e7a5 - CS 2011-11-18 13:56:41 +00:00
Stefan Marr
e150100f36 Fixes Bug #54441 (Handling of changing modifiers on a trait alias)
# this now results also in a compilation error, since it would open the door for inconsistencies, and violates the DRY principle.
2011-11-18 13:49:07 +00:00
Stefan Marr
76772dc20d Fixes Bug #54441 (Handling of changing modifiers on a trait alias)
# this now results also in a compilation error, since it would open the door for inconsistencies, and violates the DRY principle.
2011-11-18 13:49:07 +00:00