Nikita Popov
21a9ad910b
Fixed bug #79548
...
When duplicating user functions with static variables, make sure
that we init a new map ptr slot for the static variables.
2020-05-04 16:27:45 +02:00
Nikita Popov
733d84dbdf
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79535
2020-05-04 14:52:18 +02:00
Nikita Popov
7c1316ec6a
Fixed bug #79535
...
We did not allocate a cache slot for FETCH_CLASS. This is already
fixed on newer PHP versions.
2020-05-04 14:51:18 +02:00
Nikita Popov
59c8d6a863
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix literal compaction collision between string and double
2020-04-01 14:22:27 +02:00
Nikita Popov
14b770d407
Fix literal compaction collision between string and double
...
For the sake of simplicity I'm using a separate hashtable, rather
than trying to do hash perturabation on the double strings.
2020-04-01 14:20:59 +02:00
Dmitry Stogov
91ee85c20c
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:31:33 +03:00
Dmitry Stogov
65120cfc09
Fixed bug #79412 (Opcache chokes and uses 100% CPU on specific script).
2020-03-25 17:31:06 +03:00
Nikita Popov
534e15b477
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Add test file
2020-03-23 17:14:16 +01:00
Nikita Popov
2e8db5d6be
Add test file
...
Forgot the git add again...
2020-03-23 17:13:57 +01:00
Dmitry Stogov
2dddab01ae
Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
2020-03-12 16:31:24 +03:00
Christoph M. Becker
fea2994ff8
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Enclose INI values containing {TMP} in quotes
2020-03-09 22:51:11 +01:00
Christoph M. Becker
d5e206620b
Enclose INI values containing {TMP} in quotes
...
At least on Windows, the temporary directory may contain tilde signs,
which would result in an INI parse error.
2020-03-09 22:49:08 +01:00
Nikita Popov
f70b552326
Fixed bug #79193
2020-01-30 14:55:58 +01:00
Xinchen Hui
9c2fd55d01
Fixed bug #79114 (Eval class during preload causes class to be only half available)
2020-01-20 12:24:49 +08:00
Nikita Popov
59c3ddab13
Remove support for preloading on Windows
...
Due to ASLR restrictions, preloading on Windows does not work with
any code that has preloading dependencies on internal classes.
This effectively makes it unusable for any non-trivial codebase.
Instead of pretending like preloading is going to work, only to
make people realize that it really doesn't once they get beyond
a dummy example, we disable support for preloading on Windows
entirely.
Closes GH-4999.
2020-01-06 22:41:55 +01:00
Nikita Popov
bd4fce4f6f
Fixed bug #78986
...
Don't assume that handlers live in the arena, they may also be in
SHM.
2019-12-18 11:40:58 +01:00
Dmitry Stogov
6ef7e53c1b
Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS)
2019-12-16 12:24:47 +03:00
Nikita Popov
be89a5c7f1
Fixed bug #78950 : Preloading trait method with static variables
...
We need to make sure that trait methods with static variables
allocate a separate MAP slot for the static variables pointer,
rather than working in-place.
2019-12-12 11:52:43 +01:00
Nikita Popov
2d03b638dc
Fix handling of non-final loop var free in sccp
...
We only need to preserve the FE_FREE that marks the end of the
loop range. Skip FE_FREEs with the FREE_ON_RETURN flag.
2019-12-12 09:39:52 +01:00
Dmitry Stogov
3280209c03
Addirional fix for bug #78918
2019-12-11 12:21:49 +03:00
Dmitry Stogov
20ef51db22
Fixed bug #78937 (Preloading unlinkable anonymous class can segfault)
2019-12-11 00:46:30 +03:00
Nikita Popov
d6f86caa11
Fix release build failure
...
GCC complained about potentially uninitialized __orig_bailout,
even though the variable has an initializer. This warning was
quite persistent, I was only able to avoid it by using a separate
function.
Am I missing something?
2019-12-10 13:51:09 +01:00
Nikita Popov
baf3a9133b
Add support for class_alias to preloading
...
Related to bug #78918 .
2019-12-10 13:06:36 +01:00
Nikita Popov
3f86adb0ef
Fixed bug #78935 : Check that all linked classes can be preloaded
...
During preloading, check that all classes that have been included
as part of the preload script itself (rather than through opcache_compile_file)
can actually be preloaded, i.e. satisfy Windows restrictions, have
resolved initializers and resolved property types. When resolving
initializers and property types, also autoload additional classes.
Because of this, the resolution runs in a loop.
2019-12-10 13:05:48 +01:00
Nikita Popov
7e028a41e2
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix DCE with FE_FETCH
2019-12-10 09:01:18 +01:00
Nikita Popov
87691e74e5
Fix DCE with FE_FETCH
...
For now, don't treat FE_FETCH op2 as no-val use. See GH-4982.
2019-12-10 09:00:09 +01:00
Dmitry Stogov
be6fb13873
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix $x = (bool)$x; for undefined with opcache
2019-11-18 11:27:43 +03:00
Dmitry Stogov
e72e3370c6
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix $x = (bool)$x; for undefined with opcache
2019-11-18 11:26:30 +03:00
Tyson Andre
a2c41c0ea6
Fix $x = (bool)$x; for undefined with opcache
...
And `$x = !$x`
Noticed while working on GH-4912
The included test would not emit undefined variable errors in php 8.0
with opcache enabled. The command used:
```
php -d zend_extension=opcache.so --no-php-ini -d error_reporting=E_ALL \
-d opcache.file_cache= -d opcache.enable_cli=1 test.php
```
2019-11-18 11:24:03 +03:00
Nikita Popov
4d8541debb
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed bug #78747
2019-10-25 12:50:26 +02:00
Nikita Popov
74699533e5
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fixed bug #78747
2019-10-25 12:50:12 +02:00
Nikita Popov
5249993814
Fixed bug #78747
2019-10-25 12:47:18 +02:00
Nikita Popov
f07565b0eb
Check class linking in VERIFY_RETURN_TYPE optimization
...
instanceof_function() requires linked classes. I'm not reusing
unlinked_instanceof() here, because it performs class loading,
which wouldn't be right here, I think.
2019-10-25 11:24:32 +02:00
Nikita Popov
5bee9c9062
Merge branch 'PHP-7.3' into PHP-7.4
2019-09-19 17:22:28 +02:00
Nikita Popov
85e7668129
Merge branch 'PHP-7.2' into PHP-7.3
2019-09-19 17:21:45 +02:00
Nikita Popov
003c13d7bc
Fix iterable return type optimization
2019-09-19 17:21:00 +02:00
Christoph M. Becker
20f73d3d8f
Fix #78429 : opcache_compile_file(__FILE__); segfaults
...
We have to ensure that OPcache has been properly started up when
`opcache_compile_file()` is called.
2019-09-16 16:01:09 +02:00
Nikita Popov
0a24cd4e7c
Preloading: Fix handling of static vars in inherited methods
...
Part of bug #78512 .
2019-09-11 09:53:10 +02:00
Nikita Popov
36a8cf5182
Fixed bug #78514
...
The property class may have already been translated as part of
some other class. Only translate if xlat returns non-null.
2019-09-09 11:36:50 +02:00
Nikita Popov
76fecb339f
Merge branch 'PHP-7.3' into PHP-7.4
2019-08-13 11:23:06 +02:00
Nikita Popov
a33361a37c
Merge branch 'PHP-7.2' into PHP-7.3
2019-08-13 11:22:41 +02:00
Nikita Popov
4eeb41d1ea
Fixed bug #77191
2019-08-13 11:19:58 +02:00
Dmitry Stogov
3fc0e2bb80
Fixed bug #78376 (Incorrect preloading of constant static properties)
2019-08-05 22:55:06 +03:00
Nikita Popov
bf53d30fae
Fix forwarding of extra args in opcache server tests
2019-08-01 17:00:11 +02:00
Nikita Popov
a22a06c351
Merge branch 'PHP-7.3' into PHP-7.4
2019-07-29 13:03:53 +02:00
Nikita Popov
8e63bb5e46
Fixed bug #78341
...
The smart branch logic assumed b->start refers to the old offsets,
while b->start was already adjusted to the new offsets at this
point. Delay the change until later.
2019-07-29 13:02:01 +02:00
Nikita Popov
b3f74b0b7d
Deprecate allow_url_include
2019-07-22 11:39:52 +02:00
rjhdby
d574df63dc
Deprecate alternative array access syntax
...
RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
2019-07-19 10:06:10 +02:00
Nikita Popov
a520c24269
Merge branch 'PHP-7.3' into PHP-7.4
2019-07-15 10:29:37 +02:00
Nikita Popov
3eb057c4a7
Merge branch 'PHP-7.2' into PHP-7.3
2019-07-15 10:23:51 +02:00