1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 17:38:14 +02:00
Commit Graph

284 Commits

Author SHA1 Message Date
Bob Weinand e3cc15daf2 Fixed bug #74840 (Opcache overwrites argument of GENERATOR_RETURN within finally) 2017-07-01 11:52:03 +02:00
Dmitry Stogov 77cbf8a657 Fixed wrong condition 2017-05-31 00:40:33 +03:00
Nikita Popov 0beccc51f1 Fix compact_literals of INIT_METHOD_CALL with CONST op1 2017-04-15 12:35:09 +02:00
Nikita Popov 6f950e83eb Fix JMPZ+JMP => NOP+JMP optimization 2017-04-10 22:09:34 +02:00
Nikita Popov d6f70f0ee3 Disable block pass for large functions
(Backport of 7ea261685f to 7.0.)
2017-03-28 22:07:37 +02:00
Xinchen Hui 330a7b62c3 Fixed bug #74152 (if statement says true to a null variable) 2017-02-23 12:33:17 +08:00
Xinchen Hui 185304a61e Fixed bug #74019 (Segfault with list) 2017-02-10 14:24:01 +08:00
Sammy Kaye Powers 478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Nikita Popov bb3d0c0e17 Fcall optimization: Avoid FETCH_DIM_R with UNUSED op2 2016-11-10 21:36:46 +01:00
Nikita Popov e3c08de08a Don't optimize (string) cast on arrays
Otherwise we throw a notice during pass1_5 optimization.
2016-09-09 16:38:26 +02:00
Nikita Popov bbcf77c309 Fix some block_pass bugs 2016-09-09 15:58:36 +02:00
Dmitry Stogov b66039db33 Fixed bug #72944 (Null pointer deref in zval_delref_p). 2016-08-29 12:02:50 +03:00
Nikita Popov 0691e7a8e1 Fix JMPZ, JMPZNZ_EX chain optimization
The result_type was not copied, resulting in a corrupted JMPZ_EX.
Fix can be verified by inspecting the opcodes of the following
function (it should not contain any _EX opcodes):

function test() {
    if ($a && $b) {
        echo "a";
    }

    if ($b || $c || $d) {
        echo "b";
    }
}

Conflicts:
	ext/opcache/Optimizer/block_pass.c
2016-05-05 00:00:56 +02:00
Xinchen Hui aef22ac1c1 Remove unnecessary pattern 2016-03-17 20:21:36 +08:00
Xinchen Hui 041a01fd6c Fixed for PHP7 2016-03-17 20:20:01 +08:00
Xinchen Hui 820b0aa2ab Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER)
2016-03-17 19:54:33 +08:00
Xinchen Hui 8e2f658f49 Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER) 2016-03-17 19:54:19 +08:00
Dmitry Stogov 796e1629b0 Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string 2016-02-18 23:15:38 +03:00
Lior Kaplan 2eb1f38d24 Happy new year (Update copyright to 2016) 2016-01-01 20:03:16 +02:00
Lior Kaplan ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan 49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Dmitry Stogov f3bf95eb81 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed incorrect setting on 32-bit systems
2015-12-22 21:32:45 +03:00
Dmitry Stogov a57a08e791 Fixed incorrect setting on 32-bit systems 2015-12-22 21:31:28 +03:00
Xinchen Hui 2f47e9872e Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Improved fix for #71127

Conflicts:
	ext/opcache/Optimizer/pass1_5.c
2015-12-18 17:41:42 +08:00
Xinchen Hui 40702799b5 Improved fix for #71127 2015-12-18 17:37:40 +08:00
Xinchen Hui 9374977d21 Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/opcache/Optimizer/pass1_5.c
2015-12-17 14:30:00 +08:00
Xinchen Hui 940c68b55d Fixed bug #71127 (Define in auto_prepend_file is overwrite) 2015-12-17 14:27:33 +08:00
Nikita Popov 7dc5bc5063 Do not swap operands in array addition
As we support constant array operands nowadays, the original check
didn't work anymore.
2015-12-14 00:29:05 +01:00
Nikita Popov 798d168d73 Make update_opN_const implementation symmetric
So the main structure is the same...
2015-12-10 18:18:10 +01:00
Nikita Popov 37f3425263 Fix Foo::${42} and similar
Fixes segfault on direct use, segfault on opcache evaluated use,
leak on temporary use.

Fixes analogeous segfault for ${42} on opcache eval as well.
2015-12-10 18:14:40 +01:00
Xinchen Hui 9376e8213c ZEND_SPACESHIP supports 2015-11-25 20:20:05 +08:00
Nikita Popov bc3512c1d6 Fix various update_opN_const issues 2015-11-07 17:45:26 +01:00
Nikita Popov 9da456655c Refactor update_op2_const
Combines both switches into one, to avoid having to maintain the same
opcode list twice. This also makes most of the bugs fixed by the next
commit pretty obvious.

No functional change here.
2015-11-07 17:31:09 +01:00
Nikita Popov 99d818f1e9 Don't propagate into ops that error on non-string
To properly support this make update_opN_const fallible -- they
are not always called through replace_with_const.
2015-11-07 12:04:51 +01:00
Nikita Popov 00b37e718d Strip leading backslash in update_opN_const 2015-11-07 12:04:51 +01:00
Nikita Popov 632bee4abb Fix update_opX_const lowercasing
It was lowering in-place.
2015-11-07 12:04:51 +01:00
Xinchen Hui c147d90dbf Fixed bug #70601 (Segfault in gc_remove_from_buffer()) 2015-10-03 19:38:56 -07:00
Bob Weinand fe08b933e4 Add support for **= in opcache optimizer 2015-09-13 12:35:35 +02:00
Xinchen Hui 5a37056efa unnecessary 1 byte allocted 2015-08-21 18:28:02 +08:00
Xinchen Hui 79cd9a18b5 Fixed bug #70237 (Empty while and do-while segmentation fault with opcode on CLI enabled). 2015-08-11 21:01:56 +08:00
Xinchen Hui 6e894f8b81 Merge branch 'PHP-5.6' 2015-08-11 21:44:04 +08:00
Dmitry Stogov 18fb424bef Fixed bug #70207 (Finally is broken with opcache) 2015-08-10 16:38:43 +03:00
Dmitry Stogov 90cb3bb7de Reduce memory usage by using bitsets instead of array of bytes. 2015-08-06 15:41:50 +03:00
Dmitry Stogov 6d681876ee Get rid of memcpy() in MAKE_NOP() 2015-08-06 15:40:40 +03:00
Nikita Popov a717acd21a Fix RECV_VARIADIC literal compacting wrt cache slot 2015-07-26 21:22:31 +02:00
Xinchen Hui 3e479ef424 Fixed bug #70111 (Segfault when a function uses both an explicit return type and an explicit cast) 2015-07-22 22:43:30 +08:00
Dmitry Stogov ef1b588f6a Resolve GOTO at compile time and replace it with sequnce of FREE/FE_FREE and JMP. 2015-07-10 04:44:21 +03:00
Dmitry Stogov 549e8c4959 Squashed commit of the following:
commit 03cf871f1576f08b2348c141b209894a7bf17a86
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:31 2015 +0300

    Revert "Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)"

    This reverts commit 5ee8413259.

commit 285a68227ce3d380e821a24fa389aa5239bd3fe1
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:26 2015 +0300

    Revert "Tuned off dubugging of live ranges"

    This reverts commit 404dc93d35.

commit 93d9d11157301ee2ec99afb6f5744b126d17f637
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:17 2015 +0300

    Revert "Remove loop_var_stack"

    This reverts commit b3a4c05071.

commit ede68ebbc284aec79e3f719f2c8dbf9da6907752
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:12 2015 +0300

    Revert "ZEND_SEPARATE reuses temporaries"

    This reverts commit 1852f538b9.

commit 96d8995dc1f517fb01b481736273767509f76c47
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:10 2015 +0300

    Revert "Add assertion in liveliness computation"

    This reverts commit ed14019e8c.

commit 0649d7bfef152e6cc8e67b922534e9946c634d9c
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:07 2015 +0300

    Revert "Fixed invalid live-range detection"

    This reverts commit 54f367ee2a.

commit dfe8f3851f6b04595eb089323e3492115a59363e
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:04 2015 +0300

    Revert "Add test guaranteeing that loop vars are only freed after potential return type exceptions"

    This reverts commit f5db5a558d.

commit 52a94aad6f48a199358cc07f7e4f56bb73050504
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:45:01 2015 +0300

    Revert "Fixed exception habdling on "return" statement."

    This reverts commit 17c5315bdf.

commit 6e90ad7331901711e89c2ceb2bcab5023e5cee60
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:44:58 2015 +0300

    Revert "Fix too early terminated temporary range with break/cont/goto"

    This reverts commit cc876c04b4.

commit 7b766e44b1970e4031f75109c302c07ead2c05cb
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Jul 10 02:44:55 2015 +0300

    Revert "Fixed exception catching on break/continue"

    This reverts commit 8c3f701eeb.
2015-07-10 03:31:52 +03:00
Xinchen Hui 249915f938 Add comment to explaining the new check 2015-07-08 17:44:54 +08:00
Xinchen Hui c6037bd3af Fixed bug #70012 (Exception lost with nested finally block) 2015-07-08 17:15:09 +08:00