Commit graph

350 commits

Author SHA1 Message Date
Dmitry Stogov
fd453aa1d1 Intern string constant values 2017-12-07 12:27:16 +03:00
Dmitry Stogov
74c84cd7f0 Use zend_string_equal*() API for zend_string equality check instead of direct memcmp() usage. 2017-12-04 17:17:02 +03:00
Dmitry Stogov
e221e7379e Avoid function duplication 2017-11-30 16:23:15 +03:00
Nikita Popov
95e9cc2871 Backport some printf() fixes to 7.2 2017-11-16 21:26:33 +01: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
f2b91b31e4 Switch back from "request" interned strings storage to "permanent" in MSHUTDOWN 2017-11-02 23:29:21 +03:00
Dmitry Stogov
8897c80956 Use interned strings for stream transports 2017-11-01 02:39:09 +03:00
Dmitry Stogov
bbfd0df9d3 Use interned strings for persistent stream wrappers and filters 2017-10-31 18:51:35 +03:00
Dmitry Stogov
998794f584 Always calculate calculate string hash value on attempt of interning 2017-10-31 15:35:44 +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
Anatol Belski
f24e597c85 Constify key access for hash and formal params
Keys created in shared memory and won't be modified and are free'd on
restart. Otherwise, keys passed to functions should not be modified,
too.
2017-10-19 12:07:08 +02:00
Dmitry Stogov
272f5a1716 Extend zend_string API to avoid reallocation in zend_string_init_interned() 2017-10-19 00:02:56 +03:00
Dmitry Stogov
e87e62cc6f Moved ZCG(function_table) back into accel_acrivate. It should be unique per thread. 2017-10-18 18:26:30 +03:00
Anatol Belski
5315cea6e2 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Backport 7ff13badda into 7.0+
2017-10-18 16:27:31 +02:00
Anatol Belski
53d8775015 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Backport 7ff13badda into 7.0+
2017-10-18 16:24:23 +02: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
Anatol Belski
d82805f097 Backport 7ff13badda into 7.0+ 2017-10-18 16:02:56 +02:00
Dmitry Stogov
7ff13badda Fixed required SHM memeory size calculation for scripts when opcache.revalidate_path is set. 2017-10-18 14:26:44 +03:00
Dmitry Stogov
1dd224dd12 Reuse interned strings from opcache SHM, if possible. 2017-10-16 19:20:16 +03:00
Peter Kokot
3644cc6111 Remove some old apache2filter occurrences
apache2filter was supported in PHP <= 5.6. This patch removes some old
apache2filter occurrences. Also FreeBSD warning therefore is not needed
anymore when building PHP with apache2filter and in later versions don't
need to set the --with-tsrm-pth option.
2017-10-08 17:48:47 +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
Kalle Sommer Nielsen
bfdd22a3de Remove old references to SAPIs and extensions no longer in the core 2017-07-19 09:09:24 +02:00
Tom Van Looy
04fb3f28ff Remove superfluous semicolons 2017-06-26 00:23:25 +02:00
Dmitry Stogov
f25ecdacf8 shutdown_executor() refactoring (reuse opcache fast request shutdown code) 2017-06-22 01:45:28 +03:00
Dmitry Stogov
9b201aec07 Setting CG(unclean_shutdown) in fast shutdown doesn't make a lot of sense (it was set to prevent memory leak messages, but we doesn't check memory leaks in RELEASE build anyway). 2017-06-21 16:09:21 +03:00
Dmitry Stogov
c16f954ff1 Clear alocated memory blocks, only if this is really necessary. 2017-06-21 10:37:54 +03:00
Dmitry Stogov
db4561bfff Introduced "zif_handler" type (zif = zend internal function). 2017-06-08 16:52:39 +03:00
Xinchen Hui
93a5783095 Merge branch 'PHP-7.1'
* PHP-7.1:
  Update NEWS
  Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp)
2017-05-27 22:43:53 +08:00
Xinchen Hui
19befb1ca2 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp)
2017-05-27 22:43:23 +08:00
Xinchen Hui
60912e66c8 Fixed bug #74663 (Segfault with opcache.memory_protect and validate_timestamp) 2017-05-27 22:42:27 +08:00
Xinchen Hui
62a0342531 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
2017-05-16 13:22:51 +08:00
Xinchen Hui
e04b91e6e2 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
2017-05-16 13:22:43 +08:00
Xinchen Hui
89dd7fb328 Fixed bug #74596 (SIGSEGV with opcache.revalidate_path enabled)
Yeah, no test script is provided.. I got some troubles to make a one
2017-05-16 13:22:08 +08:00
Anatol Belski
fe8112e8f8 drop redundant checks 2017-03-07 15:42:19 +01:00
Anatol Belski
2cfd64cad8 move to hash API 2017-03-07 13:41:12 +01:00
Anatol Belski
c698299550 Interned strings unification for TS/NTS
Hereby, interned strings are supported in thread safe PHP. The patch
implements two types of interned strings

- interning per process, strings are not freed till process end
- interning per request, strings are freed at request end

There is no runtime interning.

With Opcache, all the permanent iterned strings are copied into SHM on
startup, additional copying into SHM might happen on demand.
2017-03-04 10:39:13 +01:00
Anatol Belski
04f150679c Merge branch 'PHP-7.1'
* PHP-7.1:
  move id initialization into ctor
2017-01-30 11:42:46 +01:00
Anatol Belski
f2c99e201e Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  move id initialization into ctor
2017-01-30 11:41:59 +01:00
Anatol Belski
4b1afc829c move id initialization into ctor 2017-01-30 11:40:23 +01:00
Anatol Belski
2370183429 Merge branch 'PHP-7.1'
* PHP-7.1:
  fix system id initialization for multiple threads
2017-01-30 01:59:02 +01:00
Anatol Belski
2a5a310446 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  fix system id initialization for multiple threads
2017-01-30 01:57:27 +01:00
Anatol Belski
2b7e5468c9 fix system id initialization for multiple threads 2017-01-30 01:54:36 +01:00
Alexander Polyakov
a4accc0e3e
opcache: print restart reason 2017-01-13 21:34:11 +00:00
Alexander Polyakov
d79b82d8ae
opcache: print restart reason 2017-01-13 21:33:58 +00:00
Alexander Polyakov
6cca4fcd59
opcache: print restart reason 2017-01-13 21:33:19 +00:00
Dmitry Stogov
141d1ba980 Introduced "zend_type" - an abstraction for type-hinting representation. 2017-01-13 11:37:46 +03:00
Sammy Kaye Powers
dac6c639bb Update copyright headers to 2017 2017-01-04 11:23:42 -06:00
Sammy Kaye Powers
478f119ab9 Update copyright headers to 2017 2017-01-04 11:14:55 -06:00
Sammy Kaye Powers
9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00