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