Dmitry Stogov
33e777acbf
Improved shared interned strings handling. The previous implementation worked incorrectly in ZTS build. It changed strings only in function/class tables of one thread. Now all threads gets the same shared interned strings. Also, on shutdown, we don't try to replace SHM interned strings back to process strings, but delay dettachment of SHM instead.
2018-10-25 20:30:51 +03: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
7ec8087f80
Introduce get_properties_for() handler
...
This handler allows getting the object properties for a particular
purpose, such as array casting, serialization, etc.
2018-10-10 10:39:10 +02:00
Nikita Popov
f48ee1ff58
Clarify that the get_properties handler is required
...
Some places were checking for non-null get_properties, some weren't.
Make it clear that the handler is required and such checks are not
necessary.
2018-10-04 12:46:50 +02:00
Nikita Popov
c8188fdd3b
Merge branch 'PHP-7.3'
2018-10-02 17:49:08 +02:00
Nikita Popov
b8392803f9
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-02 17:48:56 +02:00
Nikita Popov
d2477b284b
Fixed bug #76936
2018-10-02 17:47:07 +02:00
Dmitry Stogov
a2e8334613
Allocate only necessary space for static properties of internal classes in ZTS mode.
2018-10-01 19:05:31 +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
7eb045d31a
API cleanup. Removed unused functions (kept compatibility macros).
2018-07-04 00:50:57 +03:00
Dmitry Stogov
d90c6f2443
Removed useless zval_ptr_dtor()
2018-05-29 17:58:06 +03:00
Dmitry Stogov
5eb1f92f31
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
2018-05-28 16:27:12 +03:00
Dmitry Stogov
a7f83f474c
Memory leak fix, for arg_info of internal functions with type hints (ZTS build only).
2018-03-06 14:59:30 +03:00
Dmitry Stogov
6c035f53f1
Separate duplicated code into a zend_ini_parse_bool() function.
2018-03-05 11:51:58 +03:00
Dmitry Stogov
f844d40fdc
GC API cleanup
2018-03-02 11:02:21 +03:00
Dmitry Stogov
baa9890112
Completely hide GC implementation details into zend_gc.c
2018-02-27 21:08:26 +03:00
Dmitry Stogov
6d3e1bd124
Added VM instrumentation ability
2018-02-19 16:42:02 +03:00
Xinchen Hui
33b9282c59
Remove tested code
2018-02-10 21:44:01 +08:00
Xinchen Hui
08428cf6a7
Fixed cpuinfo in LLVM GCC & Added AVX2 detection
...
Seems it only defines __builtin_cpu_supports but no __builtin_cpu_init
(Apple LLVM version 9.0.0 (clang-900.0.38))
2018-02-10 17:38:30 +08:00
Xinchen Hui
87b7180480
Fixed cpu feature check in reslover functions
2018-02-10 16:58:27 +08:00
Dmitry Stogov
17a3b48454
Make IS_UNUSED to be zero.
2018-01-31 11:18:41 +03:00
Dmitry Stogov
742d5a01ed
Get rid of IS_TYPE_COPYABLE.
2018-01-19 17:47:26 +03:00
Dmitry Stogov
5f349f3ab8
Avoid useless duplication
2018-01-19 13:14:15 +03:00
Anatol Belski
74de5461eb
The cpu setup is still needed when ifunc is supported
2018-01-16 11:55:19 +01:00
Anatol Belski
811326089f
Separate the cpuinfo initialization part and call it at startup
2018-01-16 11:27:18 +01:00
Gabriel Caruso
6400264856
Trailing whitespaces
...
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-03 14:38:00 +01:00
Xinchen Hui
a6519d0514
year++
2018-01-02 12:57:58 +08:00
Xinchen Hui
7a7ec01a49
year++
2018-01-02 12:55:14 +08:00
Dmitry Stogov
f98721b4e0
Intern auto global name strings in first place
2017-11-29 17:10:51 +03:00
Nikita Popov
26f8fc833b
Enable and fix printf() format warnings
...
Add _unchecked() variants of zend_spprintf and zend_strpprintf for
cases where we specifically want to disable these checks, such as
use of %H.
2017-11-16 21:15:36 +01:00
Dmitry Stogov
ccc12b82da
Avoid unnecessary reference-counting on strings.
2017-11-16 17:09:32 +03:00
Dmitry Stogov
ce18738a30
Removed "_" from API functions.
2017-11-16 17:09:01 +03:00
Dmitry Stogov
974a8f8ad2
Use internet strings for EG(ini_entries)
2017-10-31 02:16:46 +03:00
Dmitry Stogov
49ea143bbd
Encapsulate reference-counting primitives.
...
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead.
Added mactros to validate reference-counting (disabled for now).
These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
2017-10-27 01:28:58 +03:00
Dmitry Stogov
b4903aef16
Move a part of opcache initialization into post_startup phase (when all extensions already loaded).
2017-10-18 17:18:54 +03:00
Dmitry Stogov
cb9d81ef4f
Refactored recursion pretection
2017-10-06 01:34:50 +03:00
Nikita Popov
18e297d3dd
Merge branch 'PHP-7.2'
2017-09-24 08:55:28 +02:00
Nikita Popov
76b2b4a190
Merge branch 'PHP-7.1' into PHP-7.2
2017-09-24 08:55:12 +02:00
Nikita Popov
628c257f71
Merge branch 'PHP-7.0' into PHP-7.1
2017-09-24 08:54:36 +02:00
Nikita Popov
73d6456d7d
Fixed bug #75252
2017-09-24 08:53:27 +02:00
Anatol Belski
beb9295790
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #75063
2017-08-14 00:53:33 +02:00
Anatol Belski
0a2a136111
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fixed bug #75063
2017-08-14 00:51:47 +02:00
Anatol Belski
3069ad8dd1
Fixed bug #75063
2017-08-14 00:44:19 +02:00
Joe Watkins
8c28ff4287
Merge branch 'PHP-7.2'
...
* PHP-7.2:
fixed #endif comments
2017-08-02 08:36:36 +01:00
Joe Watkins
6202c821a9
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
fixed #endif comments
2017-08-02 08:35:51 +01:00
Joe Watkins
9c6262f39b
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
fixed #endif comments
2017-08-02 08:35:38 +01:00
clwu
b2934d2612
fixed #endif comments
2017-08-02 08:35:27 +01:00
Anatol Belski
0d1eeeb68d
move zend_ato*() to size_t and remove casts
2017-07-28 14:59:31 +02:00
Anatol Belski
49d9b3013f
Move cwd_state and path related routines to size_t
...
Having `int` there is no real profit in the size or speed, while unsigned
improves security and overall integration. ZPP supplied strings can
be then accepted directly and structs can be still handled with smaller
unsigned types for size reasons, which is safe. Yet some related places
are to go.
basic move tsrm_realpath_r to size_t
fix conditions and sync with affected places
touch ocurrences of php_sys_readlink usage
follow up on phar path handling
remove duplicated check
move zend_resolve_path and related pieces to size_t
touch yet resolve path related places
remove cast
missing pieces
missing piece
yet cleanups for php_sys_readlink for ssize_t
fix wrong return
2017-07-27 20:11:21 +02:00
Anatol Belski
bc5811f361
further sync for vim mode lines
2017-07-04 18:12:45 +02:00