Anatol Belski
4b2fb0b4ae
fix dangling pointer, phpdbg reveals it
2016-06-02 19:42:50 +02:00
Anatol Belski
47e26cf9db
fix known interned strings init with TS per request
2016-06-02 17:55:48 +02:00
Dmitry Stogov
1b4946e658
Use "fast" assembler functions in "slow" ones.
...
Mark assembler functions that changes memory.
2016-06-01 20:52:14 +03:00
Dmitry Stogov
6a32d44392
cleanup
2016-06-01 18:07:05 +03:00
Anatol Belski
ce02f0f3b8
fix test
2016-05-31 18:55:39 +02:00
Dmitry Stogov
b111da96d9
Split ZEND_SEND_VAR_NO_REF into ZEND_SEND_VAR_NO_REF and ZEND_SEND_VAR_NO_REF_EX (similar to ZEND_SEND_VAL) and remove ZEND_ARG_* flags.
2016-05-31 04:06:00 +03:00
Dmitry Stogov
f216176bc9
Initialize only the necessary fields.
2016-05-31 00:04:52 +03:00
Nikita Popov
921b3251b3
Fix bug #71604
...
Alternatively could throw some kind of uncatchable dummy exception
into the generator. Right now just checking for NULL in two places
seems simpler.
2016-05-28 14:40:32 +02:00
Nikita Popov
79de9fa4aa
Merge branch 'PHP-7.0'
...
Conflicts:
Zend/zend_vm_execute.h
2016-05-28 13:22:49 +02:00
Nikita Popov
4746e5efcb
Forbid "yield from" in force closed generators
...
Same check we do for "yield", was missed when "yield from" was
added. We could make this more granular by only forbidding to
actually yield values and still allow something like "yield from []",
but this does not seem worthwhile.
2016-05-28 13:21:05 +02:00
Xinchen Hui
d29bd582a8
Added NEWS Entry
2016-05-28 16:12:10 +08:00
Lauri Kenttä
58302192b7
Test for bug #72221 , segfault in zend_memnstr_ex
2016-05-28 16:10:29 +08:00
Lauri Kenttä
287f9489d8
Fix bug #72221 (segfault, past-the-end access)
2016-05-28 16:10:16 +08:00
Xinchen Hui
cbe89e2c6e
Merge branch 'fix-72221' of https://github.com/Metabolix/php-src
...
* 'fix-72221' of https://github.com/Metabolix/php-src :
Test for bug #72221 , segfault in zend_memnstr_ex
Fix bug #72221 (segfault, past-the-end access)
2016-05-28 16:09:31 +08:00
Dmitry Stogov
2ae21abdf7
Fixed bug #72213 (Finally leaks on nested exceptions).
...
Squashed commit of the following:
commit 8461b0407f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:34:42 2016 +0300
Rmoved zend_try_catch_element.parent and walk through op_array.try_catch_array backward from the current try_cacth_offset.
commit 0c71e24964
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:04:53 2016 +0300
Move SAVE_OPLINE() to its original place
commit 111432a4df
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed May 25 00:01:10 2016 +0300
Separate the common part of ZEND_HANDLE_EXCEPTION and FAST_RET into zend_dispatch_try_catch_finally_helper.
commit 4f21c06c2e
Author: Nikita Popov <nikic@php.net>
Date: Tue May 24 14:55:27 2016 +0200
Improve finally fix
commit da5c727499
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 10:36:08 2016 +0300
Fixed Zend/tests/try/bug70228_3.phpt and Zend/tests/try/bug70228_4.phpt
commit cfcedf2fb4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 02:59:27 2016 +0300
Added test
commit 4c6aa93d43
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue May 24 00:38:20 2016 +0300
Added tests
commit 8a8f4704b0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon May 23 23:27:34 2016 +0300
Fixed bug #72213 (Finally leaks on nested exceptions)
2016-05-25 01:25:12 +03:00
Nikita Popov
91f5940329
Forbid dynamic calls to scope introspection functions
...
Per RFC:
https://wiki.php.net/rfc/forbid_dynamic_scope_introspection
2016-05-24 20:48:24 +02:00
Nikita Popov
674297c7e4
Allow empty property names
...
Conflicts:
Zend/zend_compile.c
2016-05-24 18:34:17 +02:00
Nikita Popov
a19eb8e34a
Ensure no entry predecessors for SSA construction
2016-05-24 18:29:45 +02:00
Lauri Kenttä
ad98f573f6
Test for bug #72221 , segfault in zend_memnstr_ex
2016-05-24 17:40:29 +03:00
Dmitry Stogov
9b27df8df5
Fixed white-spaces
2016-05-24 12:37:20 +03:00
Dmitry Stogov
0cdbabe558
Merge branch 'nullable_types' of github.com:morrisonlevi/php-src
...
* 'nullable_types' of github.com:morrisonlevi/php-src:
Fix bug #71428
Add nullable parameter types
Implement nullable return types.
2016-05-23 10:14:26 +03:00
Lauri Kenttä
26fa27d760
Fix bug #72221 (segfault, past-the-end access)
2016-05-21 18:46:00 +03:00
Bob Weinand
4f077aee83
Allow for [] = $array; (alias for list())
2016-05-20 01:51:05 +02:00
Dmitry Stogov
14a71cf545
Added and fixed tests related to "finally" handling
2016-05-19 13:22:46 +03:00
Dmitry Stogov
88196e9151
Added specialized handler for ZEND_FETCH_DIM_R opcode with only numeric indexes.
2016-05-18 15:06:49 +03:00
Dmitry Stogov
cef8d93edd
Fixed typo
2016-05-18 11:29:02 +03:00
Nikita Popov
14023d39c1
Move builtin_ctzl portability into zend_bitset.h
...
Use this function in both zend_mm_bitset_find_one and
zend_bitset_first.
Maybe zend_bitset.h is not quite the right place for it, but I did
not want to include this in a globally included header like
zend_long.h or zend_portability.h.
2016-05-17 22:23:43 +02:00
Nikita Popov
b65b15c6f4
Mark assert() as INDIRECT_VAR_ACCESS
...
I don't like this... we may want to detect "obviously not string"
operands by checking for the result of a comparison instruction.
2016-05-17 16:13:17 +02:00
Xinchen Hui
37b1226af1
Merge branch 'master' of git.php.net:/php-src
...
* 'master' of git.php.net:/php-src:
Inlined fast paths of the freqently execute handlers for FETCH_DIM_R.
2016-05-17 20:28:26 +08:00
Xinchen Hui
fad91468db
Revert "Fixed Bug #72213 (Finally leaks on nested exceptions)"
...
This reverts commit 5037ebf058
.
2016-05-17 20:27:16 +08:00
Dmitry Stogov
c466df6813
Inlined fast paths of the freqently execute handlers for FETCH_DIM_R.
2016-05-17 15:08:04 +03:00
Dmitry Stogov
34a6c93b25
Specialize ZEND_ASSIGN_ADD and family according to value of opline->extended_value
2016-05-17 11:46:25 +03:00
Xinchen Hui
5037ebf058
Fixed Bug #72213 (Finally leaks on nested exceptions)
2016-05-17 15:32:43 +08:00
Dmitry Stogov
8f7b1a3248
IS_CONST operands don't have to be separated. Use reference-counting instead of duplication.
...
- with opcache all IS_CONST operands are not refcounted (scalars, interned strings or immutable arrays)
- without opcache IS_CONST operands are not shared between processes or threads and may use common reference counters
2016-05-17 08:45:06 +03:00
Dmitry Stogov
1fe7b3bca1
micro-optimisation
2016-05-17 02:09:29 +03:00
Dmitry Stogov
97bf4e0b12
Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function
2016-05-16 12:42:13 +03:00
Dmitry Stogov
054446a25f
Extend CAL_FLAGS from 8-bit to 16-bit
2016-05-16 12:41:24 +03:00
Dmitry Stogov
414c4c6776
Revert "Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function."
...
This reverts commit a9b517c614
.
2016-05-16 11:51:29 +03:00
Dmitry Stogov
a9b517c614
Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function.
2016-05-16 10:24:13 +03:00
Anatol Belski
41518d255e
fix dir separator
2016-05-14 23:48:04 +02:00
Nikita Popov
6079ba4b0c
Inference: Fix undef handling for binary ops
...
We need to be careful about correctly handling that undef results
in a null value. Otherwise, apart from simply generating incorrect
results, we may also end up performing non-monotonic lattice
transitions, thus causing an infinite type inference loop (see
test).
2016-05-14 17:16:32 +02:00
Sara Golemon
7594fd0cfa
Check in generated lexer
...
This should have been included with my previous diff implementing octal overflow warning.
Ooops.
2016-05-14 04:31:39 +00:00
Sara Golemon
95af467d8d
Raise compiler warning on octal overflow
...
Addresses https://bugs.php.net/bug.php?id=71994
2016-05-14 00:20:32 +00:00
Dmitry Stogov
be071702b3
Fixed bug #72188 (Nested try/finally blocks losing return value)
2016-05-13 14:38:43 +03:00
Dmitry Stogov
e9c3f9fcde
Fixed bug #72177 (Scope issue in __destruct after ReflectionProperty::setValue())
2016-05-13 11:55:09 +03:00
Dmitry Stogov
ccf18da450
Eliminated checks for (func->op_array.fn_flags & ZEND_ACC_GENERATOR) in fast path of DO_FCALL* handlers.
...
This slightly improves calls to regular function and method calls in cost of a bit slower generator initialization.
Separate call frame for generators, allocated on heap, now created by ZEND_GENERATOR_CREATE instruction.
2016-05-13 01:40:15 +03:00
Nikita Popov
b1c3c9a525
Explicitly construct phi set during def propagation
...
Previously the phi set was first computed during def propagation
and then computed again (per-block) during actual phi placement.
This commit changes this to store the phi set computed during
def propagation.
This makes SSA construction slightly faster (5%), but the main
purpose here is to pave the way for the next commit.
This also fixes a potential issue with the handling of irreducible
loops -- they generated additional phis, but these were not
accounted for in def propagation. (Though I'm not sure if we can
even have any irreducible loops right now.)
2016-05-12 22:08:28 +02:00
Anatol Belski
aea0d577f9
Merge branch 'PHP-7.0'
...
* PHP-7.0:
fix dir separator in test
2016-05-12 20:38:02 +02:00
Anatol Belski
f751b1ceaf
fix dir separator in test
2016-05-12 20:37:04 +02:00
Dmitry Stogov
4652fe18c7
Removed useless code
2016-05-12 16:46:37 +03:00