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

1807 Commits

Author SHA1 Message Date
Dmitry Stogov
7f67513ca3 Lazy function copying from op_cache SHM into process memory 2018-06-25 19:53:58 +03:00
Nikita Popov
73f07738b9 Fix off-by-one error 2018-06-25 15:26:10 +02:00
Nikita Popov
2543e61aed Fixed bug #76509
In PHP static properties are shared between inheriting classes,
unless they are explicitly overwritten. However, because this
functionality was implemented using reference, it was possible
to break the implementation by reassigning the static property
reference.

This is fixed by switching the implementation from using references
to using INDIRECTs, which cannot be affected by userland code.
2018-06-25 15:04:09 +02:00
Nikita Popov
102bcb5c05 Update array_element_type inference for previous change
LIST_R and DIM_IS return value can't be MAY_BE_REF anymore.
2018-06-25 14:27:02 +02: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
Dmitry Stogov
7793bc8ee6 Improved type inference. Result of opcodes using ZVAL_COPY_DEREF can't be MAY_BE_REF. 2018-06-25 13:07:44 +03: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
Dmitry Stogov
84d7d4e1cc Fixed bug #76466 (Loop variable confusion) 2018-06-18 11:21:23 +03:00
Peter Kokot
be49d61b19 Remove old SVN keywords substitutions
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from source
code files.
2018-06-16 13:04:30 +02:00
Xinchen Hui
35872c0960 Remove assertion 2018-06-15 17:21:59 +08:00
Xinchen Hui
efcaa37190 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76477 (Opcache causes empty return value)
2018-06-15 16:31:58 +08:00
Xinchen Hui
f31ba7cb53 Fixed bug #76477 (Opcache causes empty return value) 2018-06-15 16:31:31 +08:00
Xinchen Hui
609385bbf8 Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)). 2018-06-13 15:06:51 +08:00
Xinchen Hui
1cc9933130 Fixed bug #76463 (var has array key type but not value type) 2018-06-12 20:55:06 +08:00
Nikita Popov
e4e334effb Remove dead code for ADD_STRING/ADD_CHAR optimization
These opcodes don't exist anymore. The modern equivalent would be
the ROPE_* opcodes. However the code would have to be different
anyway.
2018-06-11 20:17:36 +02:00
Nikita Popov
60323906f9 Optimizer: Don't propagate constants into MAKE_REF
This occurs in Zend/tests/assign_ref_error_var_handling.phpt,
added in 95a0709935.
2018-06-10 00:10:32 +02:00
Dmitry Stogov
9e0f131d2b Fixed ISSET/ISEMPTY bit meaning to simplify run-time checks 2018-05-31 19:02:51 +03:00
Anatol Belski
ca2e9df56c Fix AVX part 2018-05-31 14:15:28 +02:00
Dmitry Stogov
45d62d9f9b Use SSE/AVX instructions 2018-05-30 20:59:29 +03:00
Dmitry Stogov
44be0fa67b Fixed HashTable load factor 2018-05-29 10:16:02 +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
Anatol Belski
4fb8304143 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:39:07 +02:00
Anatol Belski
f7b431fb30 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:37:53 +02:00
Anatol Belski
6043a2d6f7 Fix Opcache test fails regarding to AppVeyor image update 2018-05-18 18:36:39 +02:00
Dmitry Stogov
858d545ce6 micro optimization 2018-05-08 00:22:04 +03:00
Dmitry Stogov
34ed8e53fe Changed worst HashTable load factor from 1.0 to 0.5 2018-05-04 02:41:35 +03:00
Dmitry Stogov
1a63fa6ec9 Implemented Request #76178 (Class constants are slow: they should be inlined at runtime)
Run-time cache is used to eliminate recalculation of constant expression in RECV_INIT opcode (only non reference countable values are cached).
2018-05-03 14:40:18 +03:00
Dmitry Stogov
5a31e14beb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:12:07 +03:00
Dmitry Stogov
3fe2e2a372 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:11:07 +03:00
Dmitry Stogov
5b3e1ded35 Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp) 2018-05-03 12:10:33 +03:00
Dmitry Stogov
c88be6aee1 Bit check micro-optimization 2018-04-28 14:13:12 +03:00
Dmitry Stogov
df4d0a73d2 Revert "Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)."
This reverts commit c6ce03e45e.
2018-04-28 13:28:00 +03:00
Dmitry Stogov
f8c1ce18e9 Revert "Merge branch 'PHP-7.1' into PHP-7.2"
This reverts commit c547c1b980, reversing
changes made to 4c083e7a66.
2018-04-28 13:27:36 +03:00
Dmitry Stogov
1b305ecdcc Revert "Merge branch 'PHP-7.2'"
This reverts commit f75b8a44cc, reversing
changes made to aeb734910a.
2018-04-28 13:26:32 +03:00
Dmitry Stogov
83f98f7340 Don't store values of PHP_SAPI and PHP_BINARY in file cache, because it may be used by different SAPI. 2018-04-28 01:20:49 +03:00
Dmitry Stogov
f75b8a44cc Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:28:01 +03:00
Dmitry Stogov
c547c1b980 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:24:56 +03:00
Dmitry Stogov
c6ce03e45e Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp). 2018-04-28 00:19:53 +03:00
Nikita Popov
aeb734910a Merge branch 'PHP-7.2' 2018-04-27 22:24:36 +02:00
Nikita Popov
4c083e7a66 Merge branch 'PHP-7.1' into PHP-7.2 2018-04-27 22:23:55 +02:00
Nikita Popov
6738d19fb8 Fix bug #76281
Make sure we keep the smart-branch inhibiting NOP even if there
are multiple NOPs in sequence.
2018-04-27 22:21:59 +02:00
Nikita Popov
1c887eaf0d Merge branch 'PHP-7.2' 2018-04-27 17:02:40 +02:00
Nikita Popov
2c602be7c8 Merge branch 'PHP-7.1' into PHP-7.2 2018-04-27 17:02:01 +02:00
Nikita Popov
279ba58edb Fixed bug #76275
* Adjust IS_SERIALIZED() check to account for potential empty
  allocations at the end of the memory region.
* Deallocate empty allocation if all try/catch elements have been
  removed in the block pass (similar to what we do if all live
  ranges have been eliminated).
2018-04-27 17:01:35 +02:00
Dmitry Stogov
4df89a31b0 Eliminate useless checks 2018-04-04 02:12:26 +03:00
Dmitry Stogov
cb464a53c8 Use "fastcall" calling convention 2018-04-04 01:12:59 +03:00
Rasmus Lerdorf
4b4cd6907f Better explanation for the opcache.max_wasted_percentage ini setting
since it was pretty confusing before
2018-03-30 13:28:45 -07:00
Rasmus Lerdorf
aaae3637e0 Better explanation for the opcache.max_wasted_percentage ini setting
since it was pretty confusing before
2018-03-30 13:24:17 -07:00
Nikita Popov
9a3bb1201f Merge branch 'PHP-7.2' 2018-03-24 13:16:31 +01:00
Nikita Popov
3306577797 Followup fix for bug #75729
The case of overloaded substr() with 3 arguments was not handled.
2018-03-24 13:15:59 +01:00