1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 06:51:18 +02:00
Commit Graph

15360 Commits

Author SHA1 Message Date
Dmitry Stogov
b1f08079b5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings.
2019-12-17 10:13:13 +03:00
Dmitry Stogov
d89cd0bb22 Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings. 2019-12-17 10:10:11 +03:00
Dmitry Stogov
6895eb4db5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leak
2019-12-17 10:09:43 +03:00
Dmitry Stogov
abf05181b9 Fixed memory leak 2019-12-17 10:09:22 +03:00
Dmitry Stogov
c8dbbd74e9 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed memory leaks
2019-12-17 09:58:56 +03:00
Dmitry Stogov
0927af3d8d Fixed memory leaks 2019-12-17 09:58:27 +03:00
Nikita Popov
7d07f19eee Merge branch 'PHP-7.4'
* PHP-7.4:
  Set opcache.optimization_level=0 in test
2019-12-16 20:23:53 +01:00
Nikita Popov
77e131da91 Set opcache.optimization_level=0 in test
Otherwise opcache "inlines" the function, which causes a minor
difference in destruction behavior.
2019-12-16 20:23:17 +01:00
Stanislav Malyshev
6556916759 Merge branch 'PHP-7.4'
* PHP-7.4:
  Test fixes
2019-12-16 10:31:40 -08:00
Stanislav Malyshev
d82a2f6c21 Test fixes 2019-12-16 10:31:22 -08:00
Nikita Popov
98527d7d4c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78973
2019-12-16 18:53:32 +01:00
Nikita Popov
11b041d3c6 Fixed bug #78973
Save opline in leave helper to correctly handle destructor calls
during CV freeing (or other leave freeing).
2019-12-16 18:52:30 +01:00
Nikita Popov
72a5fdec2c Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78921
2019-12-13 16:38:42 +01:00
Nikita Popov
7e9e0937f3 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fixed bug #78921
2019-12-13 16:38:24 +01:00
Nikita Popov
621598eaa8 Fixed bug #78921
By resetting fake_scope during autoloading. We already do the same
when executing destructors.
2019-12-13 16:37:20 +01:00
Nikita Popov
a40a69fdd0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Introduce extra counter to avoid RTD key collisions
2019-12-13 11:05:41 +01:00
Nikita Popov
0f2cdbf214 Introduce extra counter to avoid RTD key collisions
Also generate a fatal error if a collision occurs in zend_compile.

This is not perfect, because collisions might still be introduced
via opcache, if one file is included multiple times during a request,
invalidate in the meantime and recompiled by different processes.

This still needs to be addressed, but this patch fixes the much
more common case of collisions occuring when opcache is not used.

Fixes bug #78903.
2019-12-13 11:04:44 +01:00
Máté Kocsis
beee92a887 Remove support for mixing parameter order in implode() 2019-12-12 13:49:05 +01:00
Nikita Popov
d56768817b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78950: Preloading trait method with static variables
2019-12-12 11:52:51 +01: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
231bc7c8be Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "Fixed bug #78903: Conflict in RTD key for closures results in crash"
2019-12-11 14:40:02 +01:00
Nikita Popov
502cd7b1f1 Revert "Fixed bug #78903: Conflict in RTD key for closures results in crash"
This reverts commit b55033fa18.

This breaks ext/opcache/tests/bug65915.phpt.
2019-12-11 14:38:48 +01:00
Nikita Popov
33648585d6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78903: Conflict in RTD key for closures results in crash
2019-12-11 13:08:12 +01:00
Nikita Popov
b55033fa18 Fixed bug #78903: Conflict in RTD key for closures results in crash
I wasn't able to create a simple reproducer for this. General approach
is the same as for anonymous classes: If the key is already used, reuse
the old definition.
2019-12-11 13:07:45 +01:00
Dmitry Stogov
ee45dbab37 Merge branch 'PHP-7.4'
* PHP-7.4:
  Addirional fix for bug #78918
2019-12-11 12:29:10 +03:00
Dmitry Stogov
3280209c03 Addirional fix for bug #78918 2019-12-11 12:21:49 +03:00
Dmitry Stogov
8fb3ef6e37 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78937 (Preloading unlinkable anonymous class can segfault)
2019-12-11 00:47:15 +03:00
Dmitry Stogov
20ef51db22 Fixed bug #78937 (Preloading unlinkable anonymous class can segfault) 2019-12-11 00:46:30 +03:00
Nikita Popov
5cdea8d5e8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Add support for class_alias to preloading
  Fixed bug #78935: Check that all linked classes can be preloaded
2019-12-10 13:12:29 +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
aaa0a80636 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix build
2019-12-09 16:06:37 +01:00
Nikita Popov
8d36d79d57 Fix build 2019-12-09 16:06:26 +01:00
Dmitry Stogov
b1577f5a57 Merge branch 'PHP-7.4'
* PHP-7.4:
  Export zend_init_func_run_time_cache()
2019-12-09 15:58:19 +03:00
Dmitry Stogov
03d1c788ea Export zend_init_func_run_time_cache() 2019-12-09 15:58:00 +03:00
Dmitry Stogov
62826e95d2 Merge branch 'PHP-7.4'
* PHP-7.4:
  Call zend_unregister_ini_entries() when unload extension loaded through dl() without MSHUTDOWN callback. Extensions with MSHUTDOWN should use UNREGISTER_INI_ENTRIES().
2019-12-09 15:07:39 +03:00
Dmitry Stogov
92c23e1fd3 Call zend_unregister_ini_entries() when unload extension loaded through dl() without MSHUTDOWN callback.
Extensions with MSHUTDOWN should use UNREGISTER_INI_ENTRIES().
2019-12-09 15:05:24 +03:00
Nikita Popov
8b1b68d3ba Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78926: Handle class table reallocation on failed link
2019-12-09 09:16:48 +01:00
Nikita Popov
32c1f37574 Fixed bug #78926: Handle class table reallocation on failed link
When we change back the bucket key on a class linking failure,
make sure to reload the bucket pointer, as the class table may
have been reallocated in the meantime.

Also remove a bogus bucket key change in anon class registration:
We don't actually rename the class in this case anymore, the RTD
key is already the final name.
2019-12-09 09:15:27 +01:00
Nikita Popov
33e39f088a Merge branch 'PHP-7.4'
* PHP-7.4:
  Use unmangled named in property type inheritance error
2019-12-09 08:49:42 +01:00
Nikita Popov
5fcc12f505 Use unmangled named in property type inheritance error 2019-12-09 08:48:33 +01:00
Nikita Popov
ded87a9ea0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed bug #78904: Don't call any magic for uninitialized typed properties
2019-12-09 08:42:34 +01:00
Nikita Popov
84354c62b3 Fixed bug #78904: Don't call any magic for uninitialized typed properties
We already changed the behavior for __set() in f1848a4. However, it
seems that this is also a problem for all the other property magic,
see bug #78904.

This commit makes the behavior of all the property magic consistent:
Magic will not be triggered for uninitialized typed properties, only
explicitly unset() ones. This brings behavior more in line how
non-typed properties behave and avoids WTF.

Closes GH-4974.
2019-12-09 08:40:53 +01:00
Christoph M. Becker
4daa680512 Drop duplicate definitions of zend_isnan and friends
Following up on commit 1c4ad17[1], we remove these definitions from
zend_config.w32.h, since they would be overridden by those in
zend_portability.h anyway.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=1c4ad17cc1e483201a36b027f20aab1f91d19628>
2019-12-08 14:55:26 +01:00
Nikita Popov
aed2bf7ab3 Remove unused function 2019-12-06 14:18:52 +01:00
Nikita Popov
0bac785477 Optimize return type checking
Split off the fast-path case and avoid redundant checks.
2019-12-06 14:17:03 +01:00
Nikita Popov
9554fb3498 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix constant evaluation of && and ||
2019-12-06 11:11:12 +01:00
Nikita Popov
07fc0764d1 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix constant evaluation of && and ||
2019-12-06 11:10:31 +01:00
Nikita Popov
249e49092d Fix constant evaluation of && and ||
The "return" in the for loop should have been a break on the switch,
otherwise the result is just ignored... but because it prevents
evaluation of the other operand, it also violates the invariant that
everything has been constant evaluated, resulting in an assertion
failure.

The for loop isn't correct in any case though, because it's not legal
to determine the result based on just the second operand, as the
first one may have a side-effect that cannot be optimized away.
2019-12-06 11:07:57 +01:00
George Peter Banyard
1c4ad17cc1 Move isinf, isnan, and isfinite to zend_portability.h
Closes GH-4966
2019-12-05 14:27:51 +01:00
Máté Kocsis
633926021b Remove ezmlm_hash() function 2019-12-05 13:15:54 +01:00