Sara Golemon
16758a3c66
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Remove extraneous parentheses in conditions
2016-12-25 22:18:27 -08:00
Sébastien Santoro
5d7c774bea
Remove extraneous parentheses in conditions
...
The zend_vm_gen.php generator now checks if the condition is already
enclosed by parentheses, and them only if needed.
This fixes nine clang/llvm parentheses-equality warnings.
2016-12-25 22:17:46 -08:00
Dmitry Stogov
3c6a2fb08c
Fixed bug #73792 (invalid foreach loop hangs script)
2016-12-20 16:48:57 +03:00
Dmitry Stogov
fb73c1084c
Few micro-optimizations
2016-12-19 15:36:37 +03:00
Dmitry Stogov
fac95658b3
Improved VM stack unwinding on exception.
...
Now zend_throw_exception_hook() is going to be called only when exception is actually thrown and not going to be recalled for each unwinded finction.
2016-12-12 10:55:32 +03:00
Xinchen Hui
7695fba388
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fix the bug in ZEND_ASSIGN_DIM (as nikic suggest)
Revert "Refix bug #73686 "
2016-12-09 22:30:41 +08:00
Xinchen Hui
09b36113b0
Fix the bug in ZEND_ASSIGN_DIM (as nikic suggest)
2016-12-09 22:30:24 +08:00
Dmitry Stogov
a3526cd9b7
Regenerated zend_vm_execute.h (fixed white spaces)
2016-12-08 13:37:57 +03:00
Kalle Sommer Nielsen
cf24a61735
Disable C4101 warnings entirely on Windows
2016-12-08 03:50:31 +01:00
Dmitry Stogov
5011a11a6d
Fixed memory leaks caused by exceptions thrown from destructors (one more case).
2016-12-07 01:43:13 +03:00
Dmitry Stogov
e8109e09aa
Fixed memory leaks caused by exceptions thrown from destructors.
2016-12-07 00:41:07 +03:00
Dmitry Stogov
b4ad6d6d1b
COALESCE can't throw exception
2016-12-06 10:21:44 +03:00
Dmitry Stogov
a722970033
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Micro optimizations
2016-12-06 10:01:38 +03:00
Dmitry Stogov
547b735d34
Micro optimizations
2016-12-06 10:01:18 +03:00
Bob Weinand
444d612b62
Use an inline handler instead of repeating logic for calling assign op helpers each time
2016-12-05 10:55:11 +01:00
Bob Weinand
46d708a1b6
Fix PHP-7.0 build (wrong fix for the branch)
2016-12-03 23:39:54 +01:00
Bob Weinand
f74890bcf5
Merge branch 'PHP-7.1'
2016-12-03 18:29:11 +01:00
Bob Weinand
146b68e022
Merge branch 'PHP-7.0' into PHP-7.1
2016-12-03 18:28:47 +01:00
Bob Weinand
ffc1ef1eed
Fix leak when using $this outside of object context
2016-12-03 18:28:08 +01:00
Dmitry Stogov
56fd01e230
Eliminated useless exception check
2016-12-02 16:04:18 +03:00
Dmitry Stogov
3e31ba8014
Eliminated useless exception checks (FE_RESET with array argument can't throw exception)
2016-12-02 15:58:47 +03:00
Dmitry Stogov
1660117799
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Eliminated useless exception check
2016-12-02 15:40:11 +03:00
Dmitry Stogov
af2d47c9c7
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Eliminated useless exception check
2016-12-02 15:40:04 +03:00
Dmitry Stogov
68558ab71d
Eliminated useless exception check
2016-12-02 15:39:33 +03:00
Dmitry Stogov
22cebaf89a
Revert "Fix return value memory leaks upon exceptions in opcode operand freeing"
...
This reverts commit 9ad9d7ae37
.
2016-12-02 11:58:41 +03:00
Dmitry Stogov
9c1920d9e8
Revert "Fix memory leaks with FE_RESET upon empty iterator"
...
This reverts commit 00e516e575
.
2016-12-02 11:58:36 +03:00
Dmitry Stogov
9774e32dbb
Revert "Fix accidental zval_ptr_dtor()ing of object"
...
This reverts commit ae2f68d8a5
.
2016-12-02 11:58:33 +03:00
Dmitry Stogov
8fa691ea8a
Revert "Fix a few valgrind warnings with undefing result"
...
This reverts commit 8f4e100f21
.
2016-12-02 11:58:25 +03:00
Bob Weinand
8f4e100f21
Fix a few valgrind warnings with undefing result
2016-12-01 10:15:07 +01:00
Bob Weinand
ae2f68d8a5
Fix accidental zval_ptr_dtor()ing of object
2016-11-30 23:57:22 +01:00
Bob Weinand
00e516e575
Fix memory leaks with FE_RESET upon empty iterator
...
Solved by manually freeing and jumping to the opcode *after* FE_FREE
2016-11-30 17:44:34 +01:00
Bob Weinand
9ad9d7ae37
Fix return value memory leaks upon exceptions in opcode operand freeing
2016-11-30 17:44:34 +01:00
Dmitry Stogov
3b4c9f18e0
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed calling generators through magic __call()
2016-11-28 12:30:16 +03:00
Dmitry Stogov
458c732ed4
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed calling generators through magic __call()
2016-11-28 12:30:01 +03:00
Dmitry Stogov
970f21be97
Fixed calling generators through magic __call()
2016-11-28 12:20:19 +03:00
Nikita Popov
7dbdf2db83
Fix foreach object property visibility checks
...
Again, check_property_access() does not correctly work for properties
that look like mangled private propert names (but aren't). Fix this
by only checking visibility for INDIRECT properties.
foreach currently still unmangles property names, even if they don't
correspond to declared properties. HHVM does not do this (and I think
this is correct.) As this is done consistently, leaving it alone
for now.
2016-11-22 21:01:15 +01:00
Dmitry Stogov
1ab44223bf
Export zend_do_fcall_overloaded()
2016-11-22 18:36:27 +03:00
Dmitry Stogov
e5fce51196
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Micro-optimization
2016-11-22 12:07:06 +03:00
Dmitry Stogov
4495ea4740
Micro-optimization
2016-11-22 12:06:39 +03:00
Dmitry Stogov
653c9e1fa2
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Removed useless (double) checks for EG(exception). (Bob)
2016-11-22 11:51:42 +03:00
Dmitry Stogov
8d70b04a1c
Removed useless (double) checks for EG(exception). (Bob)
2016-11-22 11:50:48 +03:00
Dmitry Stogov
d6c332eb51
Turn IS_TYPE_COLLECTABLE zval flag into GC_COLLECTABLE zend_refcounted flag.
...
This simplifies checks and allows reset this flag for "acyclic" arrays and objects.
2016-10-21 17:47:30 +03:00
Bob Weinand
2b246e2e38
Merge branch 'PHP-7.1'
2016-10-18 14:32:12 +02:00
Bob Weinand
58f3b9c0ef
Merge remote-tracking branch 'origin/PHP-7.0' into PHP-7.1
2016-10-18 14:31:49 +02:00
Bob Weinand
8b177f6a2a
Fixed bug #73338 (Exception thrown from error handler may crash)
2016-10-18 14:14:24 +02:00
Xinchen Hui
c9274d20b7
Fixed bug #73288 (Segfault in __clone > Exception.toString > __get)
...
Actually this is caused by optimization(opcache)
(cherry picked from commit d19898b298
)
2016-10-14 01:35:39 +02:00
Xinchen Hui
d19898b298
Fixed bug #73288 (Segfault in __clone > Exception.toString > __get)
...
Actually this is caused by optimization(opcache)
2016-10-12 16:07:56 +08:00
Xinchen Hui
ac7285dace
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Cleanup exception handling after zend_fetch_class_by_name
fix user filter bug
2016-09-30 16:01:43 +08:00
Xinchen Hui
b28277db94
Cleanup exception handling after zend_fetch_class_by_name
2016-09-30 16:00:14 +08:00
Xinchen Hui
1bc3e1b4c3
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Use smart branch
2016-09-30 13:19:39 +08:00
Xinchen Hui
f211614ba7
Use smart branch
2016-09-30 13:19:11 +08:00
Nikita Popov
5bdd732d21
Merge branch 'PHP-7.1'
2016-09-28 22:39:17 +02:00
Nikita Popov
97066792b7
Merge branch 'PHP-7.0' into PHP-7.1
2016-09-28 22:38:47 +02:00
Nikita Popov
437942d972
Merge branch 'PHP-5.6' into PHP-7.0
2016-09-28 22:36:58 +02:00
Nikita Popov
99bf19c177
Check next_index_insert failure in ADD_ARRAY_ELEMENT
2016-09-28 22:35:27 +02:00
Dmitry Stogov
97628da24a
Expose information about calls to "fake" closures (created through ReflectionFunction::getClosure), to allow extra specialization of RETRUN opcode handler.
2016-09-26 17:44:28 +03:00
Nikita Popov
ebaba26d39
Merge branch 'PHP-7.1'
2016-09-25 12:39:33 +02:00
Nikita Popov
bd893061d6
Use SEND_USER for CONST|TMP as well
...
Otherwise we're missing the "expected to be a reference, value
given" warning that appears for ordinary calls to call_user_func().
Also update an UPGRADING note with recent changes wrt
call_user_func().
2016-09-25 12:39:23 +02:00
Dmitry Stogov
ab1b32f81a
Removed redundand code
2016-09-23 12:26:30 +03:00
Dmitry Stogov
c7149b92d7
Micro-optimization
2016-09-13 17:10:30 +03:00
Nikita Popov
53b3ef54d2
Merge branch 'PHP-7.1'
2016-09-09 15:31:54 +02:00
Nikita Popov
b4213f0d0b
Add fast paths for bitwise operators
2016-09-09 15:30:41 +02:00
Nikita Popov
bbdff7ea24
Sync convert_to_null with VM cast behavior
...
Do not call cast_object, this is useless and we haven't been doing
it in the VM as of 7.0.
2016-09-04 12:36:16 +02:00
Xinchen Hui
aefd3e4d8b
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Remove redundant \t
2016-08-25 13:29:55 +08:00
Xinchen Hui
38f7d595c0
Remove redundant \t
2016-08-25 13:29:22 +08:00
Dmitry Stogov
93b8592092
Merge branch 'PHP-7.1'
...
* PHP-7.1:
call_user_func(_array): Don't abort on reference warning
2016-08-23 10:56:55 +03:00
Nikita Popov
906456c410
call_user_func(_array): Don't abort on reference warning
...
Change zend_call_function() to not abort the call if a non-reference
is passed to a reference argument. The usual warning will still be
thrown, but the call will proceed as usual.
2016-08-23 10:29:15 +03:00
Xinchen Hui
b740bb3987
Fixed bug #72907 (null pointer deref, segfault in gc_remove_zval_from_buffer (zend_gc.c:260))
2016-08-21 17:10:10 +08:00
Nikita Popov
89f6377971
Return true for is_object() on Incomplete_Class
2016-08-15 23:13:09 +02:00
Nikita Popov
3b48c5a36f
Revert "Make call_user_func() on reference args consistent"
...
This reverts commit fafe01b07b
.
See bug #72698 , there is code using this behavior. Reverting for
PHP 7.0 *only*. The fix is still in PHP 7.1.
2016-07-28 18:45:44 +02:00
Xinchen Hui
5296853fff
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed typo
2016-07-20 17:01:53 +08:00
Xinchen Hui
cbbe17fb53
Fixed typo
2016-07-20 17:01:42 +08:00
Xinchen Hui
9254f5d5d3
Merge branch 'PHP-7.0'
...
* PHP-7.0:
Fixed bug #72629 (Caught exception assignment to variables ignores references).
Conflicts:
main/php_version.h
2016-07-20 17:00:09 +08:00
Xinchen Hui
97c0b133c5
Fixed bug #72629 (Caught exception assignment to variables ignores references).
2016-07-20 16:59:14 +08:00
Nikita Popov
cbba1fff3f
Fix leak if get_iterator throws but doesn't return NULL
2016-07-16 23:16:34 +02:00
Nikita Popov
a26748d7be
Fix bad merge
...
In master the operand is fetched earlier, I didn't account for
that.
2016-07-14 20:44:36 +02:00
Nikita Popov
37a2f3fe25
Fix leak if get_constructor returns NULL
2016-07-14 18:42:46 +02:00
Nikita Popov
eba5466f10
Fix leaks if update_constant fails
2016-07-14 18:42:45 +02:00
Nikita Popov
0bda0422af
Merge branch 'PHP-7.0'
...
Conflicts:
Zend/zend_vm_execute.h
2016-07-14 18:39:48 +02:00
Nikita Popov
c3804a2cf9
Fix leaks in yield from error conditions
...
Conflicts:
Zend/zend_vm_execute.h
2016-07-14 18:38:45 +02:00
Nikita Popov
d1f82bfeb2
Fix leak for by-ref assign to overloaded object
...
Conflicts:
Zend/zend_vm_execute.h
2016-07-14 18:38:04 +02:00
Dmitry Stogov
9a76189caf
Fixed memory leak
2016-07-14 13:14:15 +03:00
Dmitry Stogov
f80bb059b3
Fixed memory leak
2016-07-14 13:05:27 +03:00
Dmitry Stogov
e6f04d4c8e
Unified behavior of modification of returned by reference value in finnally code.
2016-07-13 20:35:53 +03:00
Dmitry Stogov
02dca0cf16
Removed wrong warning
2016-07-13 20:04:47 +03:00
Dmitry Stogov
afd3e39d66
Fixed bug #29368 (The destructor is called when an exception is thrown from the constructor).
2016-07-13 16:43:47 +03:00
Dmitry Stogov
3b8cb2119b
Fixed bug #72347 (VERIFY_RETURN type casts visible in finally)
...
Fixed bug #72216 (Return by reference with finally is not memory safe)
Fixed bug #72215 (Wrong return value if var modified in finally)
2016-07-13 15:08:28 +03:00
Dmitry Stogov
fbca255cd0
Fixed bug #71539 (Memory error on $arr[$a] =& $arr[$b] if RHS rehashes)
2016-07-07 00:59:44 +03:00
Dmitry Stogov
023b812593
Fixed bug #72543 (Different references behavior comparing to PHP 5)
2016-07-06 20:46:43 +03:00
Aaron Piotrowski
d9a9cf8eca
Merge branch 'master' into iterable
2016-07-03 22:42:10 -05:00
Xinchen Hui
d1dd474ff9
Fixed bug #72523 (dtrace issue with reflection (failed test))
2016-07-01 18:50:35 +08:00
Dmitry Stogov
1a14533806
Introduce new CHECK_VAR instruction to keep warnings about undefined variables.
2016-06-30 21:40:34 +03:00
Nikita Popov
45cfe7852a
Merge branch 'PHP-7.0'
...
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2016-06-28 20:57:55 +02:00
Nikita Popov
fafe01b07b
Make call_user_func() on reference args consistent
...
Previously reference arguments were allowed if call_user_func()
was compiled to SEND_USER and not otherwise. Make it consistent
by always forbidding them.
2016-06-28 20:43:38 +02:00
Dmitry Stogov
044e2718fe
Fixed executor without global register variales (gcc warnings or clang errors)
2016-06-27 10:36:41 +03:00
Dmitry Stogov
a6387c0aa5
Added ability to make non-local control transfer through interrupt function
2016-06-24 12:20:41 +03:00
Dmitry Stogov
d0460d8f6b
Turn safe timeout handling into general interrupt handling ability.
2016-06-23 15:01:23 +03:00
Dmitry Stogov
ebb99a1a3a
Fixed compilation warnings
2016-06-21 16:55:17 +03:00
Dmitry Stogov
1616038698
Added ZEND_ATTRIBUTE_FORMAT to some middind functions.
...
"%p" replaced by ZEND_LONG_FMT to avoid compilation warnings.
Fixed most incorrect use cases of format specifiers.
2016-06-21 16:00:37 +03:00
Dmitry Stogov
ff363e2e7c
Implemented RFC: Replace "Missing argument" warning with "Too few arguments" exception
...
Squashed commit of the following:
commit 8b45fa2acb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jun 16 01:52:50 2016 +0300
Separate slow path of ZEND_RECV into a cold function.
commit 9e18895ee5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Jun 15 23:26:28 2016 +0300
Required argument can't be IS_UNDEF anymore.
commit 662db66e39
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 31 17:14:50 2016 +0300
Replace "Missing argument" warning by "Too few arguments" exception.
2016-06-16 02:32:02 +03:00