Dmitry Stogov
e8daada82e
Tune ARRAY_KEY_EXISTS opcode handler for speed and code size
2018-12-27 02:34:52 +03:00
Dmitry Stogov
95d8e05554
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Respect EG(vm_stack_page_size)
2018-12-26 13:10:02 +03:00
Dmitry Stogov
b45774eed0
Respect EG(vm_stack_page_size)
2018-12-26 13:09:32 +03:00
Dmitry Stogov
868c1b7377
Reduce executor size
2018-12-18 17:34:18 +03:00
Gabriel Caruso
cdd8368d6f
Clean up unnecessary ternary expressions and simplify some returns
...
- Simplify conditions
- Use ZEND_HASH_APPLY_* instead of hard-coded booleans
- Use ZEND_NORMALIZE_BOOL
- Drop sign in favor of ZEND_NORMALIZE_BOOL
2018-12-03 01:22:14 +01:00
Dmitry Stogov
5f2817ad61
Avoid early reference check
2018-11-27 15:27:40 +03:00
Dmitry Stogov
93f7cbf29b
fixed typo
2018-11-20 12:53:05 +03:00
Dmitry Stogov
a5a3d507d2
Optimization
2018-11-20 11:55:16 +03:00
Zeev Suraski
9afce019e0
Future-proof email addresses
2018-11-01 18:35:32 +02:00
Zeev Suraski
54dc07f3dc
Update email addresses. We're still @Zend, but future proofing it...
2018-11-01 17:20:07 +02:00
Dmitry Stogov
d57cd36e47
Immutable clases and op_arrays.
...
Squashed commit of the following:
commit cd0c36c3f9
Merge: 4740dabb84
ad6738e886
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 14:43:38 2018 +0300
Merge branch 'master' into immutable
* master:
Remove the "auto" encoding
Fixed bug #77025
Add vtbls for EUC-TW encoding
commit 4740dabb84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 14:12:28 2018 +0300
Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes.
commit ad7a78b253
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:46:30 2018 +0300
Added comment
commit 0276ea5187
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:42:43 2018 +0300
Added type cast
commit c63fc5d5f1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:36:51 2018 +0300
Moved static class members initialization into the proper place.
commit b945548e93
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:21:03 2018 +0300
Removed redundand assertion
commit d5a4108840
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:19:13 2018 +0300
Removed duplicate code
commit 8dadca8864
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 11:05:43 2018 +0300
Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros.
commit 9ef07c88bd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 10:48:29 2018 +0300
typo
commit a06f0f3d3a
Merge: 94099586ec
3412345ffe
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 10:47:07 2018 +0300
Merge branch 'master' into immutable
* master:
Remove unused variable makefile_am_files
Classify object handlers are required/optional
Add support for getting SKIP_TAGSTART and SKIP_WHITE options
Remove some obsolete config_vars.mk occurrences
Remove bsd_converted from .gitignore
Remove configuration parser and scanners ignores
Remove obsolete buildconf.stamp from .gitignore
[ci skip] Add magicdata.patch exception to .gitignore
Remove outdated ext/spl/examples items from .gitignore
Remove unused test.inc in ext/iconv/tests
commit 94099586ec
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 15 23:34:01 2018 +0300
Immutable clases and op_arrays
2018-10-17 15:52:50 +03:00
Nikita Popov
1cfbb21790
Classify object handlers are required/optional
2018-10-16 20:53:59 +02:00
Dmitry Stogov
9418144054
Added assertions
2018-10-03 12:31:47 +03:00
Nikita Popov
c5f108c66c
Handle binary_op failure in overloaded assigns
2018-09-23 15:29:25 +02:00
Dmitry Stogov
b137441f0e
Improve ZEND_VM_SMART_BRANCH()
2018-09-19 11:47:02 +03:00
Nikita Popov
dfa166e7ed
Remove unused ZEND_FILE_LINE in i_zval_ptr_dtor
2018-09-16 17:16:26 +02:00
Dmitry Stogov
bc288c4723
Simplify __clone() visibility check (magic methods still don't respect ZEND_ACC_CHANGED).
2018-09-13 13:36:09 +03:00
Dmitry Stogov
1cc0d78c9b
This increment is not necessary anymore.
2018-09-11 22:56:31 +03:00
Dmitry Stogov
3ced766da9
Removed duplicate code. zend_fetch_dimension_address_LIST_w() was a copy of zend_fetch_dimension_address_W(), ZEND_FETCH_LIST_W_SPEC_CV_... a copy of ZEND_FETCH_DIM_W_SPEC_CV_...
2018-07-30 10:53:39 +03:00
Xinchen Hui
a7746d10a5
Fixed bug #76667 (Segfault with divide-assign op and __get + __set)
2018-07-27 13:00:14 +08:00
Dmitry Stogov
ab8094c666
Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value.
2018-07-26 12:58:07 +03:00
Peter Kokot
8d3f8ca12a
Remove unused Git attributes ident
...
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.
In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.
This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Dmitry Stogov
afc82e243c
Micro-optimization
2018-07-23 10:52:00 +03:00
Dmitry Stogov
88dd38ee81
Reduce overhead of case-insensitive constants deprecation for "fast path"
2018-07-17 12:58:58 +03:00
Dmitry Stogov
70d0175a13
Fixed error messages.
2018-07-16 17:08:11 +03:00
Dmitry Stogov
67b4c3379a
Uze ZVAL_COPY_DEREF() instead of ZVAL_DEREF() and ZVAL_COPY()
2018-07-09 12:46:46 +03:00
Xinchen Hui
9d1e9b73c5
rename ref_dtor_func to rc_dtor_func
2018-07-06 19:15:26 +08:00
Xinchen Hui
f9297387f4
Rename zval_dtor_func and ref_dotr_func
2018-07-06 18:47:30 +08:00
Xinchen Hui
e3355ac5ec
Revert "Rename _zval_dtor_func to _ref_dtor_func"
...
This reverts commit a362ae6b12
.
2018-07-06 18:37:45 +08:00
Xinchen Hui
a362ae6b12
Rename _zval_dtor_func to _ref_dtor_func
2018-07-06 18:32:27 +08:00
Dmitry Stogov
af341213f7
se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0)
2018-07-04 12:08:07 +03:00
Dmitry Stogov
177c7e3a72
Merge branch 'bug63217'
...
* bug63217:
Another fix for bug #63217
Partial revert of 30156d588c
2018-07-03 12:58:50 +03:00
Dmitry Stogov
3fd97a5b1f
Better hot/cold code splitting
2018-07-03 11:07:39 +03:00
Dmitry Stogov
28b03f9605
Another fix for bug #63217
2018-07-03 01:09:58 +03:00
Dmitry Stogov
57af94c8b9
Partial revert of 30156d588c
2018-07-02 20:54:44 +03:00
Rudi Theunissen
30156d588c
Fixed bug #63217
...
Don't automatically convert literal string keys to integers on
array access, as we may be dealing with an ArrayAccess object,
rather than a plain array.
2018-07-02 16:41:59 +02:00
Nikita Popov
7909d4532c
Merge branch 'PHP-7.2'
2018-06-30 20:11:59 +02:00
Nikita Popov
0f1726e45d
Merge branch 'PHP-7.1' into PHP-7.2
2018-06-30 20:11:39 +02:00
Nikita Popov
9b0df97a42
Fix handling of void return type on internal functions
2018-06-30 20:10:57 +02:00
Dmitry Stogov
d6ab163be8
cleanup
2018-06-29 12:35:14 +03:00
Dmitry Stogov
56450c6e65
Moved very rare exception check into a single place.
2018-06-27 13:34:15 +03:00
Xinchen Hui
3d8c82c353
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Update NEWS
Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler)
Conflicts:
Zend/zend_vm_execute.h
2018-06-27 13:08:47 +08:00
Xinchen Hui
3521661bd1
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler)
Conflicts:
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
2018-06-27 13:07:36 +08:00
Xinchen Hui
d1b1866a3a
Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler)
2018-06-27 13:05:11 +08:00
Dmitry Stogov
49a4e69584
Fixed ability to call plain functions through zend_call_method()
2018-06-25 23:01:21 +03:00
Dmitry Stogov
7f67513ca3
Lazy function copying from op_cache SHM into process memory
2018-06-25 19:53:58 +03:00
Nikita Popov
490a49d0bb
Use COPY_DEREF for DIM_IS and LIST_R as well
...
Also add an upgrading note for the behavior change, not that we
expect anyone to be affected...
2018-06-25 14:23:06 +02:00
Nikita Popov
61d00a6cf3
Use COPY_DEREF instead of COPY_UNREF
...
This fixes the behavior when the storage location of the fetch is
modified before the operand is dereferenced by the using VM opcode.
Furthermore it elimiates references as a possible return value from
*_R opcodes, which will give us more opportunities for inferences,
in particular in regard to typed properties.
2018-06-25 11:23:59 +02:00
Nikita Popov
7498f0163b
Fix handling of assign-ops on overloaded props with ref return
...
Assign-ops and incdec on overloaded properties are implemented
using a read_property followed by write_property. Previously, if
__get() returned by-reference, pre-incdec and assign-op
additionally also modified the reference, while post-incdec worked
correctly.
This change synchronizes the three code-paths to not modify the
reference. The pre-incdec implementation matches the post-incdec
implementation, the assign-op implementation uses a distinct
result operand.
2018-06-09 00:36:46 +02:00
Dmitry Stogov
b6a2ae3a5b
Cleanup
2018-06-05 11:26:15 +03:00