Commit graph

1216 commits

Author SHA1 Message Date
Xinchen Hui
1e3333e4bd Fixed Bug #70557 (Memleak on return type verifying failed) 2015-09-23 14:10:23 +08:00
Dmitry Stogov
f9ec5be888 Properly cleanup on wrong ZEND_OVERLOADED_FUNCTION call 2015-09-22 23:51:30 +03:00
Bob Weinand
b8f56013b5 Force compiler to prefer ZEND_CALL_NESTED_FUNCTION
It is by far the most used branch; compilers tended here to split the branches via an &2, &1 check, now it only does an &3 check and prefers ZEND_CALL_NESTED_FUNCTION branch
2015-09-19 19:49:44 +02:00
Xinchen Hui
517c59bfcb Suppressed warning -Wvolatile-register-var 2015-09-15 08:23:21 -07:00
Bob Weinand
b0174a14c0 Fixed bug #70478 (**= does no longer work)
Reordered ZEND_(ASSIGN_)POW opcodes in zend_vm_def.h so that it won't be missed in future
2015-09-12 00:54:48 +02:00
Dmitry Stogov
51aa1b5a1d Manual CSE to avoid double read 2015-09-11 14:13:41 +03:00
Dmitry Stogov
c174e4cd73 Change array sorting implementation to avoid two level callbacks system.
Simplify zval comparion API.
2015-09-10 02:51:23 +03:00
Dmitry Stogov
b1be126788 Avoid useless EG(exception) checks 2015-09-09 11:54:44 +03:00
Dmitry Stogov
c7dffb5673 Don't inline "Undefined variable" warning reporting. 2015-09-09 03:18:52 +03:00
Dmitry Stogov
bfab74d574 Check EG(exception) only if it's really necessary 2015-09-08 17:20:52 +03:00
Dmitry Stogov
745753eacb Prevent double load on fast path (manual common subexpression elimination) 2015-08-27 23:02:15 +03:00
Bob Weinand
c1e9bd27fe Fix zend_vm_call_opcode_handler (e.g. Generators throwing exceptions) with IP/FP registers 2015-08-26 00:25:25 +01:00
Dmitry Stogov
db5898c9e5 Optimize fast path 2015-08-24 12:47:06 +03:00
Xinchen Hui
f56534e4b9 Fixed Bug #70332 (Wrong behavior while returning reference on object)
This fix is actually made for array acessing bug fix (#70262) which is
discarded since we have another better fix, anyway now seems this is still useful
2015-08-23 20:17:51 +08:00
Dmitry Stogov
9b1570a378 Removed deprecated comments and added expectations (overloaded properties and array elements are less frequently used than regular ones) 2015-08-19 12:21:14 +03:00
Xinchen Hui
e543769fa4 Fixed bug #70288 (Apache crash related to ZEND_SEND_REF) 2015-08-18 21:45:19 +08:00
Xinchen Hui
8df3461086 Improved fix for bug #70262 2015-08-18 18:07:31 +08:00
Dmitry Stogov
ce89fd9758 Fixed bug #70262 (Accessing array crashes PHP 7.0beta3) 2015-08-17 12:58:14 +03:00
Dmitry Stogov
57a8620761 Set expectations 2015-08-14 10:59:39 +03:00
Dmitry Stogov
715d5d2855 Get rid of implicit type casting in GC_*() macros in Zend/zend_types.h.
This prevented compilation warnings and disclosed few incorrect usages in Zend/zend_vm_def.h and ext/dom/xpath.c.
Now explicit type casting may be required on call site.
This may break some C extension code, but it shoulfn't be a problem to add explicit casting.
2015-08-13 13:56:29 +03:00
Dmitry Stogov
fef086d113 Revert "Simplify ZEND_EXIT and count boolean values to it as exit status"
This reverts commit 7c003948c6.
2015-08-12 02:58:21 +03:00
Bob Weinand
7c003948c6 Simplify ZEND_EXIT and count boolean values to it as exit status 2015-08-11 22:36:47 +02:00
Dmitry Stogov
bdada12dae Reverted useless cleanup code 2015-08-10 23:55:37 +03:00
Bob Weinand
cab75d8b00 Fixed bug #70215 (segfault when __invoke is static) 2015-08-08 16:19:12 +02:00
Dmitry Stogov
5202ba5a3e Fixed possible access to uninitialized data (prevents valgrind issues in Zend/tests/bug70089.phpt) 2015-08-04 10:48:32 +03:00
Nikita Popov
743801054d Try to fix finally issue 2015-08-04 07:42:28 +03:00
Bob Weinand
d8fe645db4 Fix valgrind errors in phpdbg
Revert "We cannot safely assume that all op array will be refcount 0 after execution"
This reverts commit b6936adb58.

This change turns out to not have been a clever idea and was causing more weirdness than it helped...
2015-08-04 00:00:10 +02:00
Bob Weinand
2d6f0e4584 Fix bug #70179 ($this refcount issue) 2015-08-01 20:35:56 +02:00
Xinchen Hui
5ac6b8bcc6 Always checks for exception before push call frame 2015-07-28 16:06:06 +08:00
Xinchen Hui
4e9674f1a3 Previously fix is not right 2015-07-28 14:54:53 +08:00
Xinchen Hui
df23dd78a5 Revert "Attempt to fix bug35437.phpt fails"
This reverts commit 16d6dfddef.
2015-07-28 14:54:20 +08:00
Xinchen Hui
ef04c5c584 Revert "re-generate zend_vm_execute.h"
This reverts commit 4b6d4a1214.
2015-07-28 14:54:12 +08:00
Xinchen Hui
4b6d4a1214 re-generate zend_vm_execute.h 2015-07-28 11:15:57 +08:00
Xinchen Hui
16d6dfddef Attempt to fix bug35437.phpt fails 2015-07-28 11:06:52 +08:00
Xinchen Hui
0a5bbbdc92 Merge branch 'master' of git.php.net:php-src 2015-07-23 11:18:50 +08:00
Xinchen Hui
a123876b4e Fixed bug #70117 (Unexpected return type error) 2015-07-23 11:16:10 +08:00
Bob Weinand
b6936adb58 We cannot safely assume that all op array will be refcount 0 after execution
Some extensions may want to analyze or re-run the op array later
2015-07-22 17:16:16 +02:00
Nikita Popov
7c661bd304 Remove FAST_CALL_FROM_CATCH
This was generated for a return from a try block with both a catch
and a finally. However at this point no exception can be active,
because it either didn't exist in the first place or was explicitly
discarded using DISCARD_EXCEPTION.
2015-07-21 21:13:34 +02:00
Nikita Popov
94fb5391e7 Remove bogus exception_save() from FETCH_CLASS
There can't be no exception at the start of the op. Also would miss
the corresponding exception_restore().
2015-07-20 22:56:51 +02:00
Xinchen Hui
7d07afd6c1 Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ()) 2015-07-17 15:55:34 +08:00
Bob Weinand
0af0733352 Fixed bug #70083 (Use after free with assign by ref on overloaded objects) 2015-07-15 22:36:42 +02:00
Xinchen Hui
d0bea17d2e Improve the conditions(save one comparison) 2015-07-15 10:55:41 +08:00
Bob Weinand
82b1e22b57 Preserve return value in zend_vm_call_opcode_handler with global opline/ex registers enabled 2015-07-13 14:12:45 +02:00
Xinchen Hui
95ff2852ee Micro optimization 2015-07-10 16:39:21 +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
44f7348caa Exception thrown by "return" statement (from TMP destructors) shouldn't be caught in the same function 2015-07-10 04:13:34 +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
Dmitry Stogov
8c3f701eeb Fixed exception catching on break/continue
Fixed "finaly" handling on exception in "return" statement
2015-07-09 23:20:50 +03:00
Bob Weinand
cc876c04b4 Fix too early terminated temporary range with break/cont/goto
I have no crashing or leaking reproduce script, only valgrind invalid reads for that one; hence no phpt here
2015-07-09 20:07:57 +02:00
Dmitry Stogov
17c5315bdf Fixed exception habdling on "return" statement.
Such exceptions shouldn't be caught in the same function.
2015-07-09 20:47:25 +03:00