summaryrefslogtreecommitdiff
path: root/Zend/zend_opcode.c
Commit message (Collapse)AuthorAgeFilesLines
* Future-proof email addressesZeev Suraski2018-11-011-3/+3
|
* Fix incorrect literal freeing if pass_two generates fatal errorNikita Popov2018-09-041-1/+4
|
* Merge branch 'PHP-7.2' into PHP-7.3Xinchen Hui2018-08-171-1/+1
|\ | | | | | | | | | | * PHP-7.2: Update NEWS Fixed bug #76754 (parent private constant in extends class memory leak)
| * Merge branch 'PHP-7.1' into PHP-7.2Xinchen Hui2018-08-171-1/+1
| |\ | | | | | | | | | | | | * PHP-7.1: Fixed bug #76754 (parent private constant in extends class memory leak)
| | * Fixed bug #76754 (parent private constant in extends class memory leak)Xinchen Hui2018-08-171-1/+1
| | |
| | * year++Xinchen Hui2018-01-021-1/+1
| | |
| | * Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | |
| * | year++Xinchen Hui2018-01-021-1/+1
| | |
* | | Remove extra semicolonsGabriel Caruso2018-07-261-1/+1
| | |
* | | Remove unused Git attributes identPeter Kokot2018-07-251-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The $Id$ keywords were used in Subversion where they can be substituted with filename, last revision number change, last changed date, and last user who changed it. In Git this functionality is different and can be done with Git attribute ident. These need to be defined manually for each file in the .gitattributes file and are afterwards replaced with 40-character hexadecimal blob object name which is based only on the particular file contents. This patch simplifies handling of $Id$ keywords by removing them since they are not used anymore.
* | | Improved user iterator implementation to reduce zend_class_entry memory ↵Dmitry Stogov2018-07-121-0/+3
| | | | | | | | | | | | consumption and avoid race condition during resolving/caching of user iterator functions of internal classes in ZTS build.
* | | Changed structure of zend_class_entry.trait_aliases and ↵Dmitry Stogov2018-07-111-21/+12
| | | | | | | | | | | | zend_class_entry.trait_precedences to avoid keeping "intermediate" trait references, that are used only during inheritance.
* | | Remove duplicated code (keep destroy_zend_function() for compatibility)Dmitry Stogov2018-06-271-23/+3
| | |
* | | Fixed ZTS race condition (zend_class_entry->ce_flags of internal classes ↵Dmitry Stogov2018-06-271-1/+0
| | | | | | | | | | | | must not be modified, because internal class enties are shared between threads)
* | | Use zend_string_release_ex() instread of zend_string_release() in places, ↵Dmitry Stogov2018-05-281-22/+22
| | | | | | | | | | | | where we sure about string persistence.
* | | Implemented Request #76178 (Class constants are slow: they should be inlined ↵Dmitry Stogov2018-05-031-0/+10
| | | | | | | | | | | | | | | | | | at runtime) Run-time cache is used to eliminate recalculation of constant expression in RECV_INIT opcode (only non reference countable values are cached).
* | | Moved compiler helper functions from zend_opcode.c to zend_compile.cDmitry Stogov2018-03-131-37/+1
| | |
* | | Memory leak fix, for arg_info of internal functions with type hints (ZTS ↵Dmitry Stogov2018-03-061-6/+5
| | | | | | | | | | | | build only).
* | | Explicitly sort live ranges by start opnumNikita Popov2018-02-161-0/+16
| | | | | | | | | | | | | | | Instead of moving live ranges around to maintain the start opnum invariant, add an explicit sorting step in pass two.
* | | Moved "zval.u2.cache_slot" into free room of "zend_op"Dmitry Stogov2018-02-051-1/+1
| | |
* | | Changed CATCH instruction format (extended_value moved into op2, op2 into ↵Dmitry Stogov2018-01-311-1/+5
| | | | | | | | | | | | result, result into extended_value)
* | | Make IS_UNUSED to be zero.Dmitry Stogov2018-01-311-1/+0
| | |
* | | Inline functionDmitry Stogov2018-01-161-5/+0
| | |
* | | Get rid of zend_op_array.early_bindingDmitry Stogov2018-01-111-2/+0
| | |
* | | Avoid, most offten unnecessary, memory load.Dmitry Stogov2018-01-111-4/+3
| | |
* | | Trailing whitespacesGabriel Caruso2018-01-031-1/+1
| | | | | | | | | | | | Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
* | | year++Xinchen Hui2018-01-021-1/+1
| | |
* | | Fixed use-after free introduced in fcc08ce19f39f7ab1381ecc8a010037d41819329Dmitry Stogov2017-10-311-1/+1
| | |
* | | Prevent reference-counting on persistent zvals (internal constants, default ↵Dmitry Stogov2017-10-301-3/+6
| | | | | | | | | | | | | | | | | | | | | properties and constants of internal classes). New macro ZVAL_COPY_OR_DUP() is used perform duplication, if necessary. This should eliminate related race-coditions in ZTS build and prevent reference-counting bugs after unclean shutdown.
* | | Encapsulate reference-counting primitives.Dmitry Stogov2017-10-271-1/+1
| | | | | | | | | | | | | | | | | | Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead. Added mactros to validate reference-counting (disabled for now). These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
* | | Use zval_ptr_dtor_nogc() in places where circular zvals are not possibleDmitry Stogov2017-10-091-1/+1
| | |
* | | Changed the way VM accesses constant operands in 64-bit builds.Dmitry Stogov2017-10-041-3/+22
|/ /
* | Fixed ZTS build (disable deallocation of arg_info of internal functions with ↵Dmitry Stogov2017-09-131-0/+6
| | | | | | | | type hints)
* | Fixed memry leaks (free arg_info of internal functions with type hints)Dmitry Stogov2017-09-131-0/+25
| |
* | further sync for vim mode linesAnatol Belski2017-07-041-0/+2
| |
* | Added missed opcodesDmitry Stogov2017-07-031-0/+2
| |
* | shutdown_executor() refactoring (reuse opcache fast request shutdown code)Dmitry Stogov2017-06-221-45/+0
| |
* | Implement jumptable optimizationNikita Popov2017-04-101-0/+13
| |
* | Fix assertion violation with composerNikita Popov2017-01-241-1/+8
| |
* | Introduced "zend_type" - an abstraction for type-hinting representation.Dmitry Stogov2017-01-131-2/+19
| |
* | Update copyright headers to 2017Sammy Kaye Powers2017-01-021-1/+1
|/
* Fixed compilation warningsDmitry Stogov2016-06-211-1/+1
|
* Implemented RFC: Fix inconsistent behavior of $this variableDmitry Stogov2016-06-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit bdd3b6895c3ce3eacfcf7d4bf4feb8dfa61801fd Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jun 16 00:19:42 2016 +0300 Fixed GOTO VM commit 2f1d7c8b89ce821086d357cf65f629f040a85c03 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jun 15 21:01:57 2016 +0300 Removed unused variable commit cf749c42b0b1919f70b1e7d6dcbfff76899506af Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jun 15 19:06:16 2016 +0300 Protection from $this reassign through mb_parse_str() commit 59a9a6c83c66b666971e57f1173b33a422166efd Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jun 15 18:14:50 2016 +0300 Added type inference rule for FETCH_THIS opcode commit 73f8d14a856f14a461430b3c7534ab2ce870cbf6 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jun 15 18:11:18 2016 +0300 Restored PHP-7 behavior of isset($this->foo). It throws exception if not in object context. Removed useless opcode handlers. commit fa0881381e8ae97e022ae5d1ec0851c952f33c82 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 31 12:25:47 2016 +0300 Changed "Notice: Undefined variable: this" into "Exception: Using $this when not in object context". commit e32cc528c0f2c97963d8ec83eff0269f1f45af18 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 02:02:43 2016 +0300 Throw exception on attempt to re-assign $this through extract() and parse_str(). commit 41f1531b52113ec8a4c208aa6b9ef50f1386bb3f Author: Dmitry Stogov <dmitry@zend.com> Date: Mon May 23 22:18:36 2016 +0300 Fixed inconsistent $this behavior
* Small generator-related cleanupsNikita Popov2016-06-041-13/+0
|
* Fixed bug #72213 (Finally leaks on nested exceptions).Dmitry Stogov2016-05-251-55/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 8461b0407fc9eab0869d43b84e6a92ba2fe06997 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:34:42 2016 +0300 Rmoved zend_try_catch_element.parent and walk through op_array.try_catch_array backward from the current try_cacth_offset. commit 0c71e249649bed178bfbef30bb3e63c57f07af05 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:04:53 2016 +0300 Move SAVE_OPLINE() to its original place commit 111432a4df738fcd65878a42f23194dc3c4983a2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed May 25 00:01:10 2016 +0300 Separate the common part of ZEND_HANDLE_EXCEPTION and FAST_RET into zend_dispatch_try_catch_finally_helper. commit 4f21c06c2ec17819a708bc037f318784554a6ecd Author: Nikita Popov <nikic@php.net> Date: Tue May 24 14:55:27 2016 +0200 Improve finally fix commit da5c7274997b8308e682b5bf280124e3a1483086 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 10:36:08 2016 +0300 Fixed Zend/tests/try/bug70228_3.phpt and Zend/tests/try/bug70228_4.phpt commit cfcedf2fb4f4fc1f7de9f7d53a3037fed7795f19 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 02:59:27 2016 +0300 Added test commit 4c6aa93d43da941eb4fda15b48154bfb104bdc04 Author: Dmitry Stogov <dmitry@zend.com> Date: Tue May 24 00:38:20 2016 +0300 Added tests commit 8a8f4704b0eca2e460d42c1f253a363b0db8e510 Author: Dmitry Stogov <dmitry@zend.com> Date: Mon May 23 23:27:34 2016 +0300 Fixed bug #72213 (Finally leaks on nested exceptions)
* Fixed bug #72188 (Nested try/finally blocks losing return value)Dmitry Stogov2016-05-131-1/+0
|
* Fixed compilation warningsDmitry Stogov2016-04-291-1/+1
|
* Fix assert() in EXT modeNikita Popov2016-03-251-1/+7
|
* Evaluate arguments of new for classes without ctorNikita Popov2016-03-251-1/+0
| | | | ML: http://markmail.org/message/4b3mk7jid64zvz34
* Remove EXT_TYPE_UNUSED in favor of IS_UNUSEDNikita Popov2016-02-111-2/+2
| | | | | | | | | | | This means we no longer allocate an unused VAR for the retval of instructions that support unused results. Nearly all instructions already used the result variable only if it was used. The only exception to this was the return value variable for internal function call results. I've adjusted the code to use a stack zval for the unused return case now. As we have retval specialization now, we know that it doesn't matter.