Dmitry Stogov
64dad57d19
Fixed wrong assertion
2018-09-10 15:26:38 +03:00
Nikita Popov
a32c563e50
Merge branch 'PHP-7.2' into PHP-7.3
2018-09-07 14:02:51 +02:00
Nikita Popov
cfdd828163
Fixed bug #76796
2018-09-07 14:02:03 +02:00
Dmitry Stogov
b8828926f2
Avoid hash lookups in BIND_STATIC and BIND_LEXICAL opcode handlers.
...
Encode static variable offset into opline->extended_value.
2018-08-20 16:10:09 +03:00
Peter Kokot
cf8ef08e20
Fix typos in code
2018-07-27 16:27:41 +02:00
Dmitry Stogov
ab8094c666
Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value.
2018-07-26 12:58:07 +03:00
Dmitry Stogov
f950128cd6
Encode parent class name as IS_CONST operand in DECLARE_INHERITED_CLASS and DECLARE_ANON_INHERITED_CLASS opcodes (eliminate FETCH_CLAS
...
S opcode).
2018-07-25 13:40:47 +03:00
Peter Kokot
a5e80b22e1
Fix typos in code comments
2018-07-25 11:57:11 +02:00
Dmitry Stogov
af341213f7
se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0)
2018-07-04 12:08:07 +03:00
Dmitry Stogov
004a0568f4
Eliminated REFCOUNTED checks on persistent constant operands in SEND_VAL[_EX] and QM_ASSIGN.
2018-07-03 13:10:22 +03:00
Dmitry Stogov
28b03f9605
Another fix for bug #63217
2018-07-03 01:09:58 +03:00
Dmitry Stogov
57af94c8b9
Partial revert of 30156d588c
2018-07-02 20:54:44 +03:00
Rudi Theunissen
30156d588c
Fixed bug #63217
...
Don't automatically convert literal string keys to integers on
array access, as we may be dealing with an ArrayAccess object,
rather than a plain array.
2018-07-02 16:41:59 +02:00
Nikita Popov
5d7be2c2bc
Merge branch 'PHP-7.2'
2018-06-30 19:50:56 +02:00
Nikita Popov
34deda13a8
Merge branch 'PHP-7.1' into PHP-7.2
2018-06-30 19:50:40 +02:00
Nikita Popov
2eb6a541a9
Fix typo in compound dim assign op inference
...
Thankfully a harmless one, just makes inference results worse.
2018-06-30 19:50:07 +02:00
Dmitry Stogov
1b80de93b8
Cleanup conditions
2018-06-26 16:18:30 +03:00
Dmitry Stogov
54f171cdc0
Restored zend_array_element_type() prototype
2018-06-26 11:23:37 +03: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
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
Dmitry Stogov
858d545ce6
micro optimization
2018-05-08 00:22:04 +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
c88be6aee1
Bit check micro-optimization
2018-04-28 14:13:12 +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
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
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
Xinchen Hui
82e325ea91
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Fixed bug #76094 (Access violation when using opcache)
2018-03-15 11:17:14 +08:00
Xinchen Hui
4758164ac5
Fixed bug #76094 (Access violation when using opcache)
2018-03-15 11:17:00 +08:00
Dmitry Stogov
52fddfcca2
Avoid useless iterations
2018-03-13 16:07:18 +03:00
Dmitry Stogov
9e1e284d48
Merge branch 'PHP-7.2'
...
* PHP-7.2:
Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 )."
2018-03-13 11:04:03 +03:00
Dmitry Stogov
5574562f8f
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074 )."
2018-03-13 11:03:57 +03:00