Commit Graph

13046 Commits

Author SHA1 Message Date
Dmitry Stogov
ed7f396721 Avoid second hash value check 2017-11-24 12:03:59 +03:00
Dmitry Stogov
33b094479b TYPE_CHECK instruction changed. Now it keeps in extended_value a type mask.
This makes check for "boolean" cheaper and allows check combination e.g. (is_string($a) || is_null($a))
2017-11-23 15:58:34 +03:00
Dmitry Stogov
d5dd27987f Don't mix TYPE and TYPE_INFO 2017-11-23 13:45:21 +03:00
Dmitry Stogov
8349268fa0 Delayed unlikely checks for uninitialized variables 2017-11-23 13:18:52 +03:00
Dmitry Stogov
6780c74619 Allowed modification of VM stack page size. Exported few functions. Green light for Fibers/Coroutines. 2017-11-22 15:36:09 +03:00
Pedro Magalhães
179ed6e43d
63911: Compare opcodes of the op_array to determine different functions 2017-11-22 05:35:24 +00:00
Anatol Belski
12b2c2f5f9 Switch to ZMM routines, closes #2917 2017-11-21 19:38:53 +01:00
Dmitry Stogov
efa4d8d3ac Optimized zend_is_true() for objects (in most cases, it doesn't need to call the conversion handler). 2017-11-20 12:38:31 +03:00
Alessandro Chitolina
23b61f78a6 Fix segfault in token_get_all_variation19.phpt 2017-11-19 00:48:48 +01:00
Anatol Belski
80d6eb6806 Fix unsigned comparisons and remove dead code
Fix unsigned comparison

Cleanup never executed block

Fix unsigned comparison

Fix unsigned comparison, diff can't be < 0

Fix unsigned comparison

Fix unsigned comparison

Remove dead code
2017-11-17 22:38:44 +01:00
Anatol Belski
24356e307c Fix condition 2017-11-17 18:19:32 +01:00
Dmitry Stogov
aa7bf41502 Use cheaper checks 2017-11-17 13:23:22 +03:00
Nikita Popov
9fbb019848 Move adjust_for_fetch_type directly after emission
And drop the distinction between compile_X and compile_X_common.
This avoids WTF moments like compile_simple_var_no_cv completely
ignoring the BP_VAR type passed to it...
2017-11-16 22:28:29 +01:00
Nikita Popov
d9da166649 Minor fetch type adjustment cleanup
No need to call adjust_fetch_type on FETCH_THIS, just to special
case it in adjust_fetch_type...
2017-11-16 22:13:07 +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
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
zimuyang
b304f3bc0e Remove duplicate check for already loaded extension 2017-11-16 00:16:15 +01:00
Nikita Popov
1e3f625aa5 Merge branch 'PHP-7.2' 2017-11-15 23:01:52 +01:00
Nikita Popov
6640e03df8 Merge branch 'PHP-7.1' into PHP-7.2 2017-11-15 23:01:25 +01:00
DanielCiochiu
dba5a798a2 Fixed #74862: Unable to clone instance when private __clone defined
Even though __clone was implemented as private and called only from
parent class, child extending class instance could not be cloned.
2017-11-15 23:00:26 +01:00
Anatol Belski
61259d692e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75384 PHP seems incompatible with OneDrive files on demand
  bump versions
  Fixed ext/date tests due to changes in Olson database
2017-11-08 12:01:39 +01:00
Anatol Belski
01c70cc98b Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed #75384 PHP seems incompatible with OneDrive files on demand
  bump versions
  Fixed ext/date tests due to changes in Olson database
2017-11-08 12:00:30 +01:00
Anatol Belski
d36e793c93 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fixed #75384 PHP seems incompatible with OneDrive files on demand
  Fixed ext/date tests due to changes in Olson database
2017-11-08 11:54:18 +01:00
Anatol Belski
c6720e2f45 Fixed #75384 PHP seems incompatible with OneDrive files on demand 2017-11-08 11:52:42 +01:00
Dmitry Stogov
9731a22eba Use Zend MM heap for non-persistent ini entry values. 2017-11-08 12:01:59 +03:00
Dmitry Stogov
abd2120c4f Fixed inaccurate condition 2017-11-07 10:29:17 +03:00
Anatol Belski
d6267cd230 Don't touch inline if C++ is compiled
Starting with C++11 marco keywords are forbidden by the standard. Things
like inline namespaces would be broken by this part. As any of supported
compilers is at least C++11 complaint, tricks with inline are simply
disabled if C++ is compiled. Though, zend_always_inline is still usable,
anything else about inlining for C++ is up to the compiler.
2017-11-06 13:52:02 +01:00
Sammy Kaye Powers
b591c329ee
Allow trailing commas in function and method calls 2017-11-06 07:13:56 +00:00
Xinchen Hui
4da0bfc7d7 Unused var 2017-11-06 14:10:27 +08:00
Dmitry Stogov
d3fa900780 Removed workaraouns for inconsistent zvals (REFCOUNTED+INTERNED). They should be fixed now. 2017-11-03 21:02:55 +03:00
Dmitry Stogov
7fba7209e1 Fixed memory leak (Zend/tests/list_003.phpt) 2017-11-03 21:02:27 +03:00
Dmitry Stogov
26b2b27a25 Don't intern strings in-place if their refcoung greater than 1 2017-11-03 21:00:07 +03:00
Dmitry Stogov
522cc6926b erealloc() optimization 2017-11-03 18:35:03 +03:00
Dmitry Stogov
f2b91b31e4 Switch back from "request" interned strings storage to "permanent" in MSHUTDOWN 2017-11-02 23:29:21 +03:00
Pedro Magalhães
897bdb42f0 Fix #74922 - Try to resolve constants when importing trait properties 2017-11-02 21:06:27 +01:00
Nikita Popov
625d7075d6 Don't dup after fetch_dimension_const
Any duplication that may be necessary must have happened earlier
already. Also I'm not sure what the IS_REF branch was there for
originally, but it does not appear to be relevant anymore.
2017-11-02 19:20:14 +01:00
Xinchen Hui
d56a534acc RC manipulation cleanup 2 2017-11-02 12:13:35 +08:00
Xinchen Hui
3fa0cee640 Revert "Use zend_get_executed_filename_ex"
This reverts commit 2a37625c20.
2017-11-02 12:12:40 +08:00
Xinchen Hui
39845250f2 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Made "result", "statement" and "last_message" to always use Zend MM heap. (even for persistent connections these entities don't relive request boundary)
  Fixed memory leaks
  Use interned strings for "magic" property of internal classes. (not copyied into SHM)
  Reverted incomplete fix and too strict asserts.
  Mark persistent connection related data as "thread-local".
  Persistent resources are "thread-local". Register persistent resources through new functions zend_register_persistent_resource()/zend_register_persistent_resource_ex().
  PCRE cache is "thread-local"
  Allow reference-counting on "thread-local" persistent zvals
2017-11-02 10:40:45 +08:00
Dmitry Stogov
468fd78bff Fixed memory leaks 2017-11-02 03:04:27 +03:00
Dmitry Stogov
990d8092a4 Reverted incomplete fix and too strict asserts. 2017-11-01 16:18:13 +03:00
Dmitry Stogov
67d5f39a47 Persistent resources are "thread-local".
Register persistent resources through new functions zend_register_persistent_resource()/zend_register_persistent_resource_ex().
2017-11-01 15:19:31 +03:00
Dmitry Stogov
cf582a32ef Allow reference-counting on "thread-local" persistent zvals 2017-11-01 15:11:52 +03:00
Xinchen Hui
a32e567ec8 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed string interning during constants substitution
2017-11-01 18:42:12 +08:00
Dmitry Stogov
02a05146fd Fixed string interning during constants substitution 2017-11-01 10:56:37 +03:00
Xinchen Hui
2a37625c20 Use zend_get_executed_filename_ex 2017-11-01 15:40:54 +08:00
Dmitry Stogov
5baf657db3 Revert "Fixed string interning during constants substitution"
This reverts commit e0924c52fc.
2017-11-01 10:39:47 +03:00
Dmitry Stogov
e0924c52fc Fixed string interning during constants substitution 2017-11-01 10:34:39 +03:00
Xinchen Hui
a8a17a72b0 RC manipulation cleanup 2017-11-01 10:25:10 +08:00