Commit Graph

1257 Commits

Author SHA1 Message Date
Nikita Popov
2fddc4a7f1 Fixed bug #73900 2017-06-25 19:48:17 +02:00
Sammy Kaye Powers
478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Dmitry Stogov
63ea4d194b Fixed memory leak (Bob) 2016-11-22 11:22:10 +03:00
Dmitry Stogov
e7f4355d9b Better fix for bug #72854 (avoid extra copy and creating reference to stack variable) 2016-09-29 10:56:01 +03:00
Xinchen Hui
c67fa3c91d Fixed bug #72943 (assign_dim on string doesn't reset hval) 2016-08-26 18:30:08 +08:00
Xinchen Hui
0476bb1de5 Fixed bug #72911 (Memleak in zend_binary_assign_op_obj_helper) 2016-08-21 17:38:03 +08:00
Nikita Popov
e2230c17d3 Fix bug #72854 2016-08-16 21:05:30 +02:00
Andrea Faulds
5358c7cf5e Replace dead branch with ZEND_ASSERT() 2016-08-08 20:56:11 +01:00
Nikita Popov
807e81937b Fix bug #72767
The page size calculation did not account for the size of the
stack header (or rather it did account for it, but in the wrong
direction...)
2016-08-05 19:55:10 +02:00
Nikita Popov
82ce2a4e4d Add missing call opcodes in cleanup_unfinished_calls()
Otherwise we may leak if an exception is thrown from them.
2016-07-14 18:37:28 +02:00
Bob Weinand
a287c3f776 Fix magic constants (__LINE__) with ?? for constant scalar exprs
Also fix general memory leak when root ast gets replaced in compile time evaluation
2016-04-21 02:45:09 +02:00
Márcio Almada
9f3eab44df allow null coalescing (??) on constant expressions 2016-04-21 01:22:28 +02:00
Dmitry Stogov
f8506c062f More effecient fix for bug #71756 2016-03-10 13:33:36 +03:00
Xinchen Hui
675c295722 Improve the codes (FETCH_DIM_R/IS is read context, we should not expose IS_REFERENCE) 2016-03-10 15:09:51 +08:00
Xinchen Hui
9833c76d3f Bug #71756 (Call-by-reference widens scope to uninvolved functions when used in switch) 2016-03-10 14:58:10 +08:00
Dmitry Stogov
6039d2d914 Fixed bug #71474 (Crash because of VM stack corruption on Magento2). 2016-01-28 11:41:15 +03:00
Xinchen Hui
97a9470d97 bump year which is missed in rev 49493a2 2016-01-02 17:56:11 +08:00
Xinchen Hui
4c379392b2 Fixed bug #71067 (Local object in class method stays in memory for each call) 2015-12-09 21:07:59 +08:00
Xinchen Hui
4803914ae6 Unused var 2015-11-10 15:54:32 +08:00
Dmitry Stogov
d66d1b97aa Fixed incorrect order of free/finally on exception 2015-11-10 10:10:39 +03:00
Xinchen Hui
a8ae88162f Fixed bug #70689 (Exception handler does not work as expected) 2015-10-13 17:40:58 +08:00
Nikita Popov
cc3c425af8 Fix bug #70662
This replaces add_new with update for the RW case. This should not
be problematic for performance, as this branch throws a notice.

Alternatively add_new could also be replaced with add. I went with
update, because it makes $a[0] += 1 behavior the same as
$a[0] = $a[0] + 1.
2015-10-08 11:03:39 +02:00
Nikita Popov
8557e8323a Remove checks for read_property retval being NULL
read_property uses &EG(uninitialized_zval) instead.
2015-10-01 16:33:30 +02:00
Dmitry Stogov
62c96059a2 Fixed memory leak. 2015-09-23 23:16:30 +03:00
Xinchen Hui
504cd492e1 Fixed bug #70548 (Redundant information printed in case of uncaught engine exception) 2015-09-23 13:04:33 +08:00
Bob Weinand
e878dff5d8 Revert accidentally committed closures.c and execute.c 2015-09-19 23:22:07 +02:00
Bob Weinand
08e253cdbc Optimize zend_mm_small_size_to_bin()
It removes a cmov operation and has a much faster branch for small allocations (especially when handling strings) (<= 64 bytes)
2015-09-19 23:07:43 +02:00
Xinchen Hui
98bf9156d5 unused var 2015-09-09 15:11:42 +08: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
37f0c6b5cb Add myself into list of authors of the most refactored files. 2015-08-31 11:38:16 +03:00
Xinchen Hui
55f88141c5 Re-Fixed bug #70321 (Magic getter breaks reference to array property) 2015-08-23 11:42:33 +08:00
Xinchen Hui
e26a04f9ec Revert "Fixed bug #70321 (Magic getter breaks reference to array property)"
This reverts commit 66754585f8.
2015-08-23 10:40:28 +08:00
Bob Weinand
66754585f8 Fixed bug #70321 (Magic getter breaks reference to array property)
Note that the UNEXPECTED(zv) was turned into EXPECTED(zv), as zv is mostly set in the context where it is used and usually anyway is checked first with OP*_TYPE == IS_VAR; or maybe just completely remove that (UN)EXPECTED at this place...
2015-08-22 23:54:59 +01:00
Dmitry Stogov
71af54e5f6 Mark error and exception functions as "cold" (Matt's idea) 2015-08-19 14:40:56 +03: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
3ea8c3cf1c Fixed memleak in Zend/tests/bug39297 2015-08-18 21:46:02 +08:00
Xinchen Hui
8df3461086 Improved fix for bug #70262 2015-08-18 18:07:31 +08:00
Anatol Belski
1a2c5bc180 second part fixing vc14, type/specifier order also in definitions 2015-08-12 08:52:08 +02:00
Dmitry Stogov
a658465ef2 Export argument type checking functions 2015-08-11 19:11:21 +03:00
Dmitry Stogov
97f159d702 Support for XLC compiler 2015-08-10 19:12:11 +03:00
Xinchen Hui
aa546256e3 Fixed bug #70223 (Incrementing value returned by magic getter) 2015-08-10 17:12:45 +08:00
Dmitry Stogov
a16aa4c42c Move most "finally" related code-generation from pass_two() to compiler. 2015-08-04 07:42:28 +03:00
Bob Weinand
9e246a73ef Fixed bug #70182 (Segfault in ZEND_ASSIGN_OP handlers) 2015-08-02 19:08:39 +02:00
Xinchen Hui
0f1e87d9c1 Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION) 2015-07-24 15:49:36 +08: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
f930d6ea0e Fixed Bug #69996 (Changing the property of a cloned object affects the original) 2015-07-10 16:33:13 +08: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
301ee26568 Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and the following "opline" useages would access elements of different opcode. That might lead to unpredictable behavior. (Only PHP-7 with GCC global register variables was affected).
CHECK_EXCEPTION() macro is removed. ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE().
As a side effect, this also slightly improved performnce of builds with GCC >= 4.8.
2015-07-08 18:33:58 +03:00