Dmitry Stogov
745753eacb
Prevent double load on fast path (manual common subexpression elimination)
2015-08-27 23:02:15 +03:00
Anatol Belski
b795ce6de5
make overflow checks as unexpected
...
it's supposed to mark an error case
2015-08-26 21:12:41 +02:00
Dmitry Stogov
e549ebdb23
Mark parse error functions as cold
2015-08-26 18:29:42 +03:00
Dmitry Stogov
942747cc3e
Removed unused functions
2015-08-26 18:29:23 +03:00
Anatol Belski
95073c8429
fix year in the header
2015-08-26 17:10:23 +02:00
Anatol Belski
d40a149ade
fix typo
2015-08-26 16:39:46 +02:00
Anatol Belski
c867b510df
include range checks with the portability header
2015-08-26 16:39:45 +02:00
Anatol Belski
e2ce37be6a
added basic stuff with the zend_range_check.h
2015-08-26 16:39:44 +02:00
Dmitry Stogov
25f9e25526
Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data)
2015-08-26 03:27:05 +03:00
Bob Weinand
c1e9bd27fe
Fix zend_vm_call_opcode_handler (e.g. Generators throwing exceptions) with IP/FP registers
2015-08-26 00:25:25 +01:00
Dmitry Stogov
9d31b29705
Avoid array duplication
2015-08-25 22:40:33 +03:00
Dmitry Stogov
2482325b3d
Assign CPU registers for GOTO and SWITCH executor as well
2015-08-25 02:38:06 +03:00
Dmitry Stogov
f9f568aa1e
In 95% cases we initialize "empty" array (with 8 hash slots).
2015-08-24 22:07:28 +03:00
Dmitry Stogov
db5898c9e5
Optimize fast path
2015-08-24 12:47:06 +03:00
Xinchen Hui
f56534e4b9
Fixed Bug #70332 (Wrong behavior while returning reference on object)
...
This fix is actually made for array acessing bug fix (#70262 ) which is
discarded since we have another better fix, anyway now seems this is still useful
2015-08-23 20:17:51 +08:00
Xinchen Hui
55f88141c5
Re-Fixed bug #70321 (Magic getter breaks reference to array property)
2015-08-23 11:42:33 +08:00
Xinchen Hui
e26a04f9ec
Revert "Fixed bug #70321 (Magic getter breaks reference to array property)"
...
This reverts commit 66754585f8
.
2015-08-23 10:40:28 +08:00
Bob Weinand
66754585f8
Fixed bug #70321 (Magic getter breaks reference to array property)
...
Note that the UNEXPECTED(zv) was turned into EXPECTED(zv), as zv is mostly set in the context where it is used and usually anyway is checked first with OP*_TYPE == IS_VAR; or maybe just completely remove that (UN)EXPECTED at this place...
2015-08-22 23:54:59 +01:00
Bob Weinand
76e3e99dd6
Fix issues with phpdbg SIGINT handler
...
Also fix valgrind warnings in allocator when not using mmap()ed memory
2015-08-21 23:36:31 +01:00
Bob Weinand
5ece3ec71c
Fix bogus traces with ReflectionGenerator::getTrace()
2015-08-20 23:24:28 +02:00
Nikita Popov
ef7d822c32
Remove path from test
2015-08-20 12:58:36 +02:00
Nikita Popov
186b0f3770
Don't allow leading \ in group use decl list
...
We recently added support for "use \Foo\{Bar}". This commit drops
support for the reverse "use Foo\{\Bar}". Those two got mixed up
in the initial implementation.
2015-08-20 11:47:43 +02:00
Dmitry Stogov
30dcb2d662
Fixed typo
2015-08-19 19:15:30 +03:00
Dmitry Stogov
c97427ea8e
Fixed typo in proper place
2015-08-19 15:45:39 +03:00
Dmitry Stogov
3350faf7e4
Fixed typo
2015-08-19 15:15:17 +03:00
Dmitry Stogov
71af54e5f6
Mark error and exception functions as "cold" (Matt's idea)
2015-08-19 14:40:56 +03:00
Dmitry Stogov
9b1570a378
Removed deprecated comments and added expectations (overloaded properties and array elements are less frequently used than regular ones)
2015-08-19 12:21:14 +03:00
Márcio Almada
7568d5cb89
fixes a syntactical inconsistency with group use and leading \
...
discussion: http://news.php.net/php.internals/87774
2015-08-18 19:23:58 -03:00
Joe Watkins
784dd715e4
Fix mangled property names on anon classes
2015-08-18 16:37:38 +01:00
Xinchen Hui
3ea8c3cf1c
Fixed memleak in Zend/tests/bug39297
2015-08-18 21:46:02 +08:00
Xinchen Hui
e543769fa4
Fixed bug #70288 (Apache crash related to ZEND_SEND_REF)
2015-08-18 21:45:19 +08:00
Bob Weinand
34834c58fa
Fixed bug #70293 (Crash with specific assertions and zend.assertions=-1)
2015-08-18 15:01:24 +02:00
Julien Pauli
9a138b47c9
Removed unused code
2015-08-18 14:33:04 +02:00
Bob Weinand
a1c9c318ea
Woops, accidentally made TS build fail...
2015-08-18 14:04:48 +02:00
Bob Weinand
501407aa49
Revert fix for nicer truncation on log_errors_max_len
2015-08-18 14:01:18 +02:00
Xinchen Hui
75198c7371
Merge branch 'master' of git.php.net:php-src
2015-08-18 19:07:26 +08:00
Bob Weinand
c83cbdf6ce
Better fix for exception traces truncation with anon classes
2015-08-18 12:48:06 +02:00
Xinchen Hui
8df3461086
Improved fix for bug #70262
2015-08-18 18:07:31 +08:00
Xinchen Hui
cf9cdf97db
Merge branch 'master' of git.php.net:php-src
2015-08-18 18:07:25 +08:00
Xinchen Hui
14ea398d78
It should not be skip
2015-08-18 18:04:26 +08:00
Xinchen Hui
685fee75a5
Skip the test with valgrind
2015-08-18 18:03:34 +08:00
Dmitry Stogov
d9a9b8572b
Revert "Do not truncate exception traces upon anon class name"
...
This reverts commit b0c77fb80c
.
2015-08-18 12:03:04 +03:00
Michael Wallner
17fc5cc65d
fix inheritance of internal interfaces with constants
2015-08-18 08:20:12 +02:00
Bob Weinand
b0c77fb80c
Do not truncate exception traces upon anon class name
2015-08-18 03:27:56 +02:00
Dmitry Stogov
ce89fd9758
Fixed bug #70262 (Accessing array crashes PHP 7.0beta3)
2015-08-17 12:58:14 +03:00
Tjerk Meesters
0bd7d7a369
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Updated NEWS for #70157
Fixed #70157 parse_ini_string() segmentation fault with INI_SCANNER_TYPED
2015-08-15 16:49:30 +08:00
Tjerk Meesters
0d7159d26d
Fixed #70157 parse_ini_string() segmentation fault with INI_SCANNER_TYPED
2015-08-15 15:10:34 +08:00
Nikita Popov
6366679906
Executed file can be NULL
...
So revert this part to what it was originally.
2015-08-14 17:16:45 +02:00
Nikita Popov
2af19fb50a
Fix leak in previous commit
...
Turns out zend_update_property_str already does the copy implicitly.
2015-08-14 17:04:33 +02:00
Nikita Popov
13567d5dee
Don't copy zend_strings during exception creation
...
Minor optimization...
2015-08-14 16:16:27 +02:00
Xinchen Hui
a094f4faed
Remove useless insert
2015-08-14 17:09:27 +08:00
Dmitry Stogov
57a8620761
Set expectations
2015-08-14 10:59:39 +03:00
Xinchen Hui
66866fb838
Simplify the macro (HT_DATA_SIZE/HT_HASH_SIZE is not used outside Zend)
2015-08-13 23:38:39 +08:00
Xinchen Hui
cf12da4f33
Fixed similar issues(segfault on OOM)
2015-08-13 23:02:51 +08:00
Xinchen Hui
ded3a44cfd
Fixed segfault while OOM in pack_to_hash
2015-08-13 22:42:18 +08:00
Dmitry Stogov
715d5d2855
Get rid of implicit type casting in GC_*() macros in Zend/zend_types.h.
...
This prevented compilation warnings and disclosed few incorrect usages in Zend/zend_vm_def.h and ext/dom/xpath.c.
Now explicit type casting may be required on call site.
This may break some C extension code, but it shoulfn't be a problem to add explicit casting.
2015-08-13 13:56:29 +03:00
Xinchen Hui
adf0e49912
zend_hash_resize seems useless, use zend_hash_extend
2015-08-13 12:19:35 +08:00
Xinchen Hui
a089ce0cc6
Fixed bug #70258 and #70253
2015-08-13 12:08:57 +08:00
Xinchen Hui
0f68f12d95
Use the same error msg with resize
2015-08-12 16:46:57 +08:00
Xinchen Hui
d75228e201
We should not silently go on if the required size can not be met
2015-08-12 16:44:51 +08:00
Xinchen Hui
60b75eb9ed
Revert "We should not silently go on if the required size can not be met."
...
This reverts commit d2bcdec980
.
2015-08-12 16:44:18 +08:00
Xinchen Hui
d2bcdec980
We should not silently go on if the required size can not be met.
2015-08-12 16:40:59 +08:00
Anatol Belski
1a2c5bc180
second part fixing vc14, type/specifier order also in definitions
2015-08-12 08:52:08 +02:00
Xinchen Hui
121409865b
use efree_size here
2015-08-12 11:15:09 +08:00
Dmitry Stogov
fef086d113
Revert "Simplify ZEND_EXIT and count boolean values to it as exit status"
...
This reverts commit 7c003948c6
.
2015-08-12 02:58:21 +03:00
Dmitry Stogov
9e290a44f1
Attempt to fix Windows build (vc14)
2015-08-12 02:47:37 +03:00
Bob Weinand
7c003948c6
Simplify ZEND_EXIT and count boolean values to it as exit status
2015-08-11 22:36:47 +02:00
Bob Weinand
dbd8edbbd0
Fixed bug #70241 (Skipped assertions affect Generator returns)
2015-08-11 22:12:06 +02:00
Steven Hilder
de5d4d7b42
Add test: unmangling private properties in anon class instances
2015-08-06 16:56:05 +00:00
Steven Hilder
7ecb761818
Allow property names from anonymous classes to be unmangled
2015-08-06 15:18:14 +00:00
Dmitry Stogov
90cb3bb7de
Reduce memory usage by using bitsets instead of array of bytes.
2015-08-06 15:41:50 +03:00
Dmitry Stogov
6d681876ee
Get rid of memcpy() in MAKE_NOP()
2015-08-06 15:40:40 +03:00
Stanislav Malyshev
feeb2fba93
fix merge
2015-08-04 23:51:55 -07:00
Stanislav Malyshev
3e416bba90
fix merge
2015-08-04 16:46:53 -07:00
Stanislav Malyshev
54daa5317f
Merge branch 'PHP-5.6'
...
* PHP-5.6:
__wakeup doesn't have to be final
2015-08-04 16:14:32 -07:00
Stanislav Malyshev
97047e7665
Merge branch 'PHP-5.6'
...
* PHP-5.6:
update NEWS
fix test
update NEWS
Fix bug #70019 - limit extracted files to given directory
Do not do convert_to_* on unserialize, it messes up references
Fix #69793 - limit what we accept when unserializing exception
Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
ignore signatures for packages too
Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
Fixed bug #69892
Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
Improved fix for Bug #69441
Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
Fix bug #70081 : check types for SOAP variables
Conflicts:
Zend/zend_exceptions.c
ext/date/php_date.c
ext/openssl/openssl.c
ext/phar/phar_internal.h
ext/soap/php_http.c
ext/spl/spl_array.c
ext/spl/spl_dllist.c
ext/spl/spl_observer.c
ext/standard/tests/serialize/bug69152.phpt
sapi/cli/tests/005.phpt
2015-08-04 16:14:24 -07:00
Stanislav Malyshev
568a35f84f
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
__wakeup doesn't have to be final
2015-08-04 16:13:53 -07:00
Stanislav Malyshev
f2f8ea9ac5
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
__wakeup doesn't have to be final
2015-08-04 16:13:43 -07:00
Stanislav Malyshev
f1acac154a
__wakeup doesn't have to be final
2015-08-04 16:13:26 -07:00
Stanislav Malyshev
ed709d5aa0
Merge branch 'PHP-5.5' into PHP-5.6
...
* PHP-5.5:
update NEWS
fix test
update NEWS
Fix bug #70019 - limit extracted files to given directory
Do not do convert_to_* on unserialize, it messes up references
Fix #69793 - limit what we accept when unserializing exception
Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
ignore signatures for packages too
Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
Fixed bug #69892
Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
Improved fix for Bug #69441
Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
Fix bug #70081 : check types for SOAP variables
Conflicts:
ext/soap/php_http.c
ext/spl/spl_observer.c
2015-08-04 15:29:13 -07:00
Stanislav Malyshev
69ed3969dd
Merge branch 'PHP-5.4' into PHP-5.5
...
* PHP-5.4:
Fix bug #70019 - limit extracted files to given directory
Do not do convert_to_* on unserialize, it messes up references
Fix #69793 - limit what we accept when unserializing exception
Fixed bug #70169 (Use After Free Vulnerability in unserialize() with SplDoublyLinkedList)
Fixed bug #70166 - Use After Free Vulnerability in unserialize() with SPLArrayObject
ignore signatures for packages too
Fix bug #70168 - Use After Free Vulnerability in unserialize() with SplObjectStorage
Fixed bug #69892
Fix bug #70014 - use RAND_bytes instead of deprecated RAND_pseudo_bytes
Improved fix for Bug #69441
Fix bug #70068 (Dangling pointer in the unserialization of ArrayObject items)
Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
Fix bug #70081 : check types for SOAP variables
Conflicts:
.gitignore
ext/date/php_date.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
2015-08-04 14:10:57 -07:00
Stanislav Malyshev
51f9a00b47
Merge branch 'PHP-5.4' into PHP-5.4.44
...
* PHP-5.4:
Fixed bug #69892
Adjust Git-Rules
2015-08-04 14:04:24 -07:00
Dmitry Stogov
668ecaa606
Fixed bug #70098 (Real memory usage doesn't decrease)
2015-08-04 18:21:05 +03:00
Dmitry Stogov
5202ba5a3e
Fixed possible access to uninitialized data (prevents valgrind issues in Zend/tests/bug70089.phpt)
2015-08-04 10:48:32 +03:00
Dmitry Stogov
58596897e9
Get rid of ZEND_FAST_CALL_UNBOUND
2015-08-04 08:35:40 +03:00
Dmitry Stogov
a16aa4c42c
Move most "finally" related code-generation from pass_two() to compiler.
2015-08-04 07:42:28 +03:00
Nikita Popov
743801054d
Try to fix finally issue
2015-08-04 07:42:28 +03:00
Bob Weinand
d8fe645db4
Fix valgrind errors in phpdbg
...
Revert "We cannot safely assume that all op array will be refcount 0 after execution"
This reverts commit b6936adb58
.
This change turns out to not have been a clever idea and was causing more weirdness than it helped...
2015-08-04 00:00:10 +02:00
Bob Weinand
9e246a73ef
Fixed bug #70182 (Segfault in ZEND_ASSIGN_OP handlers)
2015-08-02 19:08:39 +02:00
Hugh Davenport
2a1a8f9ea7
Fixed bug #70183 null pointer deref (segfault) in zend_eval_const_expr
2015-08-02 16:51:23 +02:00
Anatol Belski
ee2e169108
Fixed bug #69896 'asm' operand has impossible constraints
...
Given it's an issue with 32-bit gcc-4.8, asm is disabled for the
breaking parts.
2015-08-02 09:25:24 +02:00
Stanislav Malyshev
4d2278143a
Fix #69793 - limit what we accept when unserializing exception
2015-08-01 22:02:26 -07:00
Nikita Popov
7fc04937f5
Fixed bug #69892
2015-08-01 20:47:43 -07:00
Bob Weinand
2d6f0e4584
Fix bug #70179 ($this refcount issue)
2015-08-01 20:35:56 +02:00
Anatol Belski
7be9e69eaf
remove useless ifdefs
...
the most outer block already tell's it's ZTS code
2015-07-31 19:09:36 +02:00
Anatol Belski
b604716fb6
Fixed bug #70108 sometimes empty $_SERVER['QUERY_STRING']
...
auto_globals_jit is the reason every thread needs a copy. Otherwise
every thread will operate on the master values which can't end good.
2015-07-31 13:32:39 +02:00
Bob Weinand
ac87657d42
Implicit return should be always on the last line of a function
2015-07-31 02:44:42 +02:00
Anatol Belski
ffa341de59
add macro to access globals as whole
2015-07-30 09:05:08 +02:00
Xinchen Hui
3eabf2bf19
"This" is C++ keyword
2015-07-30 11:30:34 +08:00
Bob Weinand
d45d5271f7
Fix bug #70164 (__COMPILER_HALT_OFFSET__ under namespace is not defined)
2015-07-29 19:18:29 +02:00
Anatol Belski
859507c9af
add one more thread storage specifier to allow external link
2015-07-29 17:26:52 +02:00
Anatol Belski
c17289e59c
fix thread safety
2015-07-29 17:26:51 +02:00
Anatol Belski
43cdfd9a82
add unified globals accessor macro
2015-07-29 10:36:29 +02:00
Anton Blanchard
fd8fb17be8
Improve performance of PowerPC64 fast_long_add_function
...
Detecting overflow with the XER is slow, partially because we have to
clear it before use.
PHP already has a fast way of detecting overflow in its fallback
c implementation. Overflow only occurs if the signs of the two
operands are the same and the sign of the result is different.
Furthermore, leaving it in c allows gcc to schedule the instructions
better.
This is 9% faster on a POWER8 running a simple testcase:
<?php
function testcase($count = 100000000) {
$x = 1;
for ($i = 0; $i < $count; $i++) {
$x = $x + 1;
$x = $x + 1;
$x = $x + 1;
$x = $x + 1;
$x = $x + 1;
}
}
testcase();
?>
2015-07-29 09:22:38 +02:00
Xinchen Hui
7d5fb7bbf3
Fixed bug #69674 (SIGSEGV array.c:953)
2015-07-29 10:46:12 +08:00
Anton Blanchard
4d578f28df
Improve performance of PowerPC64 fast_long_increment_function
...
Detecting overflow with the XER is slow, partially because we have to
clear it before use.
gcc does a better job of detecting overflow of an increment or decrement
than we can with inline assembly. It knows that an increment will only
overflow if it is one less than the overflow value. This means we end
up with a simple compare/branch. Furthermore, leaving it in c allows gcc
to schedule the instructions better.
This is 6% faster on a POWER8 running a simple testcase:
<?php
function testcase($count = 100000000) {
$x = 1;
for ($i = 0; $i < $count; $i++) {
$x++;
$x++;
$x++;
$x++;
$x++;
}
}
testcase();
?>
2015-07-28 18:38:23 +02:00
Anton Blanchard
305199a131
Improve performance of PowerPC64 ZEND_SIGNED_MULTIPLY_LONG
...
Detecting overflow with the XER is slow, partially because we have to
clear it before use. We can do better by using a trick where we compare
the high 64 bits of the result with the low 64 bits shifted right
63 bits.
This is 7% faster on a POWER8 running a simple testcase:
<?php
function testcase($count = 100000000) {
for ($i = 0; $i < $count; $i++) {
$x = 1;
$x = $x * 2;
$x = $x * 2;
$x = $x * 2;
$x = $x * 2;
}
}
testcase();
?>
2015-07-28 18:38:23 +02:00
Anatol Belski
5c98b9972f
improve ZEND_TLS declaration even more and move it to the better place
2015-07-28 16:59:53 +02:00
Anatol Belski
e6cbca77f5
use better name
2015-07-28 16:59:52 +02:00
Anatol Belski
d051bff8b6
simplify declaration
2015-07-28 16:59:51 +02:00
Anatol Belski
0c08ba8be4
add ZEND_THREAD specifier
2015-07-28 16:59:50 +02:00
Anatol Belski
2ec51faece
adjust storage class
...
It's more convenient do explicitly disable the external linking. Also
it's an improvement from the build access time perspective.
2015-07-28 16:59:49 +02:00
Julien Pauli
a28115ccdb
Fix for #70159 - Better magic constants substitution
2015-07-28 16:30:08 +02:00
Xinchen Hui
0bddc18619
Fixed bug #70156 (Segfault in zend_find_alias_name)
2015-07-28 16:39:58 +08:00
Xinchen Hui
5ac6b8bcc6
Always checks for exception before push call frame
2015-07-28 16:06:06 +08:00
Xinchen Hui
4e9674f1a3
Previously fix is not right
2015-07-28 14:54:53 +08:00
Xinchen Hui
df23dd78a5
Revert "Attempt to fix bug35437.phpt fails"
...
This reverts commit 16d6dfddef
.
2015-07-28 14:54:20 +08:00
Xinchen Hui
ef04c5c584
Revert "re-generate zend_vm_execute.h"
...
This reverts commit 4b6d4a1214
.
2015-07-28 14:54:12 +08:00
Xinchen Hui
4b6d4a1214
re-generate zend_vm_execute.h
2015-07-28 11:15:57 +08:00
Xinchen Hui
45ea83ba97
Merge branch 'master' of git.php.net:php-src
2015-07-28 11:07:24 +08:00
Xinchen Hui
16d6dfddef
Attempt to fix bug35437.phpt fails
2015-07-28 11:06:52 +08:00
Bob Weinand
33a91f57e9
Set CG(zend_lineno) to beginning for final class errors/ops
2015-07-28 00:57:49 +02:00
Stanislav Malyshev
e488690d95
Fix bug #70121 (unserialize() could lead to unexpected methods execution / NULL pointer deref)
2015-07-26 17:10:24 -07:00
Nikita Popov
a717acd21a
Fix RECV_VARIADIC literal compacting wrt cache slot
2015-07-26 21:22:31 +02:00
Bob Weinand
7ca85d8875
Fully fix typed generator returns
2015-07-24 22:04:05 +02:00
Bob Weinand
2eb845d0fa
Fix bug using not set temporary with typed generator returns
2015-07-24 20:31:18 +02:00
Bob Weinand
13525328ed
Cleanup shutdown, enable proper memory leak displaying
...
phpdbg should not memory leak...
2015-07-24 17:17:26 +02:00
Xinchen Hui
0f1e87d9c1
Fixed bug #70124 (null ptr deref / seg fault in ZEND_HANDLE_EXCEPTION)
2015-07-24 15:49:36 +08:00
Xinchen Hui
0a5bbbdc92
Merge branch 'master' of git.php.net:php-src
2015-07-23 11:18:50 +08:00
Xinchen Hui
a123876b4e
Fixed bug #70117 (Unexpected return type error)
2015-07-23 11:16:10 +08:00
Bob Weinand
531fa70ba8
Opcache is assuming that op_arrays without refcount are always efree()d
...
We maybe should search for some other way, because just not refcounting the op_array is rather a dirty hack.
If possible, we should change opcache and just expect op_array->refcount != NULL ... but I have not found a clean way yet.
2015-07-22 23:16:50 +02:00
Bob Weinand
b6936adb58
We cannot safely assume that all op array will be refcount 0 after execution
...
Some extensions may want to analyze or re-run the op array later
2015-07-22 17:16:16 +02:00
Nikita Popov
cff6cbc01f
Emit EXT_STMT for each statement
...
I'm excluding unticked statements for this (in 5.x they were included)
as this would just result in two consecutive EXT_STMTs.
Also add all class statements to unticked statements, these would
generate superfluous EXT_STMT/TICKS in the parent op_array.
2015-07-22 13:38:42 +02:00
Nikita Popov
7c661bd304
Remove FAST_CALL_FROM_CATCH
...
This was generated for a return from a try block with both a catch
and a finally. However at this point no exception can be active,
because it either didn't exist in the first place or was explicitly
discarded using DISCARD_EXCEPTION.
2015-07-21 21:13:34 +02:00
Bob Weinand
2141ab9be5
Fix bug #70106 (Inheritance by anonymous class)
2015-07-21 20:34:06 +02:00
Bob Weinand
81a2c43d5e
Add an option to not generate INIT_FCALL ops for user functions too
2015-07-21 16:39:49 +02:00
Nikita Popov
94fb5391e7
Remove bogus exception_save() from FETCH_CLASS
...
There can't be no exception at the start of the op. Also would miss
the corresponding exception_restore().
2015-07-20 22:56:51 +02:00
Anatol Belski
3de0ae5477
fix two clang errors on Windows
2015-07-19 20:06:31 +02:00
Nikita Popov
0039a3e96f
Fixed signed/unsigned warnings in wddx
...
Also added extra const annotation to zend_memnstr.
2015-07-17 17:19:23 +02:00
Xinchen Hui
2c048afd3b
Donot use one_char_string
2015-07-17 16:09:11 +08:00
Xinchen Hui
91e5b30a3b
Merge branch 'master' of git.php.net:php-src
2015-07-17 15:56:28 +08:00
Xinchen Hui
7d07afd6c1
Fixed bug #70089 (segfault at ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER ())
2015-07-17 15:55:34 +08:00
Nikita Popov
c568ffe517
Ignore getcwd return in zend_compile
...
To do this move the php_ignore_value macro to ZEND_IGNORE_VALUE.
2015-07-16 22:48:56 +02:00
nikita2206
d8a6130660
Handle empty (NULL) stmt in ast_export
2015-07-16 22:31:36 +02:00
Bob Weinand
37e03f6b32
Fix test; this should properly emit a fatal error, just as every other by-ref assignment to an overloaded object
2015-07-16 09:29:43 +02:00
Bob Weinand
0242653377
Fix test; this should properly throw an Error, just as every other by-ref assignment to an overloaded object
2015-07-16 09:25:19 +02:00
Bob Weinand
f57cb13c56
Backport fix for bug #70083 to PHP-5.6
2015-07-15 22:46:53 +02:00
Bob Weinand
0af0733352
Fixed bug #70083 (Use after free with assign by ref on overloaded objects)
2015-07-15 22:36:42 +02:00
Dmitry Stogov
a658465ef2
Export argument type checking functions
2015-08-11 19:11:21 +03:00
Xinchen Hui
4064ee3061
Fixed bug #70240 (Segfault when doing unset($var());)
2015-08-11 21:42:11 +08:00
Dmitry Stogov
162bf9e802
Reimplemented ability to get debug info (C source file and line number) in phpdbg without hacks and ABI breaks.
2015-08-11 16:33:47 +03:00
Dmitry Stogov
bdada12dae
Reverted useless cleanup code
2015-08-10 23:55:37 +03:00
Dmitry Stogov
97f159d702
Support for XLC compiler
2015-08-10 19:12:11 +03:00
Xinchen Hui
bf6d8d5188
Merge branch 'master' of git.php.net:php-src
2015-08-10 23:00:27 +08:00
Xinchen Hui
89940993f0
Fixed Bug #70173 (ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc)
2015-08-10 22:58:58 +08:00
Dmitry Stogov
adcb1102e7
Fixed typo
2015-08-10 17:57:49 +03:00
Xinchen Hui
644bb2f654
Merge branch 'copy-32bit-be' of https://github.com/cmb69/php-src
2015-08-10 22:54:47 +08:00
Xinchen Hui
55a017c303
Add XFAIL test for #70228
2015-08-10 22:02:15 +08:00
Xinchen Hui
87a5f2c486
Fixed no return statement in function returning non-void
2015-08-10 21:48:17 +08:00
Xinchen Hui
16f2ce8537
Hmm, we should also take care of uninitialized hashTable
2015-08-10 17:58:24 +08:00
Xinchen Hui
aa546256e3
Fixed bug #70223 (Incrementing value returned by magic getter)
2015-08-10 17:12:45 +08:00
Xinchen Hui
be54eb7db1
Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free)
2015-08-10 17:02:16 +08:00
Christoph M. Becker
79f64e5e67
Fix #70173 : ZVAL_COPY_VALUE_EX broken for 32bit Solaris Sparc
...
On 32bit big endian architectures the high word of a zend_value is copied
twice, instead of copying both words. Let's fix it.
2015-08-09 15:01:37 +02:00
Bob Weinand
cab75d8b00
Fixed bug #70215 (segfault when __invoke is static)
2015-08-08 16:19:12 +02:00
Bob Weinand
b7aac1f5f2
Fixed bug #70208 (Assert breaking access on objects)
2015-08-08 00:02:49 +02:00
Xinchen Hui
d0bea17d2e
Improve the conditions(save one comparison)
2015-07-15 10:55:41 +08:00
Rasmus Lerdorf
611ff0c846
One less comparison
2015-07-13 19:44:51 -07:00
Rasmus Lerdorf
1ce4e8c45e
Fix potential segfault
2015-07-13 19:38:55 -07:00
Bob Weinand
bce9368dfb
Closures only have {closure}() as method name
...
Prefixing a class name does not make sense as they may be rebound to another scope, where this will be confusing
2015-07-14 02:52:09 +02:00
Bob Weinand
1003d01f3a
Fix __METHOD__ in functions nested into methods
2015-07-14 02:37:35 +02:00
Bob Weinand
82b1e22b57
Preserve return value in zend_vm_call_opcode_handler with global opline/ex registers enabled
2015-07-13 14:12:45 +02:00
Xinchen Hui
833e4ced87
Merge branch 'goto_branch_hint' of https://github.com/bogdanandone/php-src
2015-07-13 19:07:11 +08:00
Xinchen Hui
e5a996f268
Fixed bug #70057 (Build failure on 32-bit Mac OS X 10.6.8: recursive inlining)
2015-07-13 16:22:55 +08:00
Xinchen Hui
eef41c57a3
Merge branch 'zend_update_static_property' of https://github.com/dreamsxin/php-src
2015-07-13 16:02:21 +08:00
Dreamsxin
7554e83037
Updated zend_update_static_property
2015-07-13 08:42:18 +08:00
Xinchen Hui
e63c756c09
Better implementation
2015-07-11 18:59:09 +08:00
Bob Weinand
0584df0ad9
hmm, we do not need the nop after compilation, so does not matter for opcache...
2015-07-10 23:35:05 +02:00
Bob Weinand
56800e470b
a: try { ... } ≠ try { a: ... }
2015-07-10 23:29:07 +02:00
Xinchen Hui
8e709d7f5d
Fixed invalid read (Part issue of #69579 )
2015-07-10 22:26:53 +08:00
Nikita Popov
25d327e53f
Move try/catch/finally tests to common directory
2015-07-10 13:35:14 +02:00
Nikita Popov
725fed4902
Mark temporary_cleaning_006.phpt as XFAIL
...
And adjust it to fail even with opcode.
2015-07-10 13:33:32 +02:00
Xinchen Hui
95ff2852ee
Micro optimization
2015-07-10 16:39:21 +08:00
Xinchen Hui
f930d6ea0e
Fixed Bug #69996 (Changing the property of a cloned object affects the original)
2015-07-10 16:33:13 +08:00
Bogdan Andone
e27cbe6542
Hint label lookup table initialization branch on GOTO VM kind.
...
This initialization is performed only once so it shall be marked as unexpected.
2015-07-10 11:18:40 +03:00
Xinchen Hui
54305c8952
Fixed No 2 issue in #1400
2015-07-10 16:04:45 +08:00
Xinchen Hui
a3f05d640d
Fixed Issue #1400 (double free static property)
2015-07-10 15:27:06 +08:00
Dmitry Stogov
ef1b588f6a
Resolve GOTO at compile time and replace it with sequnce of FREE/FE_FREE and JMP.
2015-07-10 04:44:21 +03:00
Dmitry Stogov
44f7348caa
Exception thrown by "return" statement (from TMP destructors) shouldn't be caught in the same function
2015-07-10 04:13:34 +03:00
Dmitry Stogov
3bb70fe290
Readded tests
2015-07-10 03:46:57 +03:00
Dmitry Stogov
549e8c4959
Squashed commit of the following:
...
commit 03cf871f1576f08b2348c141b209894a7bf17a86
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:31 2015 +0300
Revert "Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)"
This reverts commit 5ee8413259
.
commit 285a68227ce3d380e821a24fa389aa5239bd3fe1
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:26 2015 +0300
Revert "Tuned off dubugging of live ranges"
This reverts commit 404dc93d35
.
commit 93d9d11157301ee2ec99afb6f5744b126d17f637
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:17 2015 +0300
Revert "Remove loop_var_stack"
This reverts commit b3a4c05071
.
commit ede68ebbc284aec79e3f719f2c8dbf9da6907752
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:12 2015 +0300
Revert "ZEND_SEPARATE reuses temporaries"
This reverts commit 1852f538b9
.
commit 96d8995dc1f517fb01b481736273767509f76c47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:10 2015 +0300
Revert "Add assertion in liveliness computation"
This reverts commit ed14019e8c
.
commit 0649d7bfef152e6cc8e67b922534e9946c634d9c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:07 2015 +0300
Revert "Fixed invalid live-range detection"
This reverts commit 54f367ee2a
.
commit dfe8f3851f6b04595eb089323e3492115a59363e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:04 2015 +0300
Revert "Add test guaranteeing that loop vars are only freed after potential return type exceptions"
This reverts commit f5db5a558d
.
commit 52a94aad6f48a199358cc07f7e4f56bb73050504
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:45:01 2015 +0300
Revert "Fixed exception habdling on "return" statement."
This reverts commit 17c5315bdf
.
commit 6e90ad7331901711e89c2ceb2bcab5023e5cee60
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:58 2015 +0300
Revert "Fix too early terminated temporary range with break/cont/goto"
This reverts commit cc876c04b4
.
commit 7b766e44b1970e4031f75109c302c07ead2c05cb
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 10 02:44:55 2015 +0300
Revert "Fixed exception catching on break/continue"
This reverts commit 8c3f701eeb
.
2015-07-10 03:31:52 +03:00
Nikita Popov
a49ce7bb91
Don't return T_ERROR from token_get_all()
...
This turned out to be rather inconvenient after all. Instead just
return the same output we did on PHP 5. If people want to have an
error, use TOKEN_PARSE.
2015-07-09 23:02:21 +02:00
Dmitry Stogov
8c3f701eeb
Fixed exception catching on break/continue
...
Fixed "finaly" handling on exception in "return" statement
2015-07-09 23:20:50 +03:00
Bob Weinand
cc876c04b4
Fix too early terminated temporary range with break/cont/goto
...
I have no crashing or leaking reproduce script, only valgrind invalid reads for that one; hence no phpt here
2015-07-09 20:07:57 +02:00
Dmitry Stogov
17c5315bdf
Fixed exception habdling on "return" statement.
...
Such exceptions shouldn't be caught in the same function.
2015-07-09 20:47:25 +03:00
Nikita Popov
d91aad5966
Fix bug #69430
...
Don't throw from token_get_all() unless TOKEN_PARSE is used. Errors
are reported as T_ERROR tokens.
2015-07-09 19:11:48 +02:00
Bob Weinand
f5db5a558d
Add test guaranteeing that loop vars are only freed after potential return type exceptions
2015-07-09 16:54:41 +02:00
Dmitry Stogov
54f367ee2a
Fixed invalid live-range detection
2015-07-09 17:38:29 +03:00
Dmitry Stogov
225bb70498
Added missing API functions
2015-07-09 12:19:30 +03:00
Dmitry Stogov
301ee26568
Fixed situation, when CHECH_EXCEPTION() might change value of "opline" variable and the following "opline" useages would access elements of different opcode. That might lead to unpredictable behavior. (Only PHP-7 with GCC global register variables was affected).
...
CHECK_EXCEPTION() macro is removed. ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTIO() should be used instead. It's equivalent to old CHECK_EXCEPTION() + ZEND_VM_NEXT_OPCODE().
As a side effect, this also slightly improved performnce of builds with GCC >= 4.8.
2015-07-08 18:33:58 +03:00
Xinchen Hui
f9dc60f36f
Merge branch 'master' of git.php.net:php-src
2015-07-08 18:25:04 +08:00
Xinchen Hui
b9e48073b3
Make sure fast_call_var is initialized properly
2015-07-08 18:24:27 +08:00
Nikita Popov
ed14019e8c
Add assertion in liveliness computation
...
Assert that a live-range does not start, while one for the same
variable is already active.
To satisfy this constraint, explicitly exclude writes from JMP_SET
and COALESCE. They were previously also handled correctly, because
their result variable was only killed after the second write to it
after the false branch. This just makes it more explicit.
2015-07-08 12:00:39 +02:00
Xinchen Hui
3b5876916d
Remove outdate comment
2015-07-08 17:42:50 +08:00
Xinchen Hui
c6037bd3af
Fixed bug #70012 (Exception lost with nested finally block)
2015-07-08 17:15:09 +08:00
Xinchen Hui
ca30d5bf39
Fixed bug #70012 (Exception lost with nested finally block)
2015-07-08 17:14:19 +08:00
Nikita Popov
1852f538b9
ZEND_SEPARATE reuses temporaries
2015-07-08 00:13:23 +02:00
Aaron Piotrowski
a1a83bf5f0
Switch code on thrown TypeError and ParseError to 0, update related tests
2015-07-07 16:54:39 -05:00
Nikita Popov
b3a4c05071
Remove loop_var_stack
...
Instead add a loop_var member to brk_cont_element. Now that
brk_cont is compile-time the distinction is no longer necessary.
Also drops brk_cont.start, check the loop_var op_type instead.
2015-07-07 20:55:12 +02:00
Aaron Piotrowski
5df893ce3c
Use NULL where possible for exception class
...
Matches usage of zend_throw_exception()/zend_throw_exception_ex().
2015-07-07 12:10:55 -05:00
Aaron Piotrowski
29c3cd4448
Allow NULL for exception_ce
2015-07-07 12:10:55 -05:00
Anatol Belski
c0142de470
fix C89 compat
2015-07-07 18:39:33 +02:00
Kalle Sommer Nielsen
fe842a8510
fix C89 compat
2015-07-07 18:26:14 +02:00
Julien Pauli
dfb0c6363f
Merge branch 'PHP-5.6'
...
* PHP-5.6:
Fixed double ZEND_TICKS opcode generation for declare()
Conflicts:
Zend/zend_compile.c
2015-07-07 15:03:58 +02:00
Julien Pauli
c22da81b71
Fixed double ZEND_TICKS opcode generation for declare()
2015-07-07 14:56:05 +02:00
Dmitry Stogov
5ee8413259
Fixed bug #62210 (Exceptions can leak temporary variables. As a part of the fix serious refactoring was done. op_array->brk_cont_array was removed, and replaced with more general and speed efficient op_array->T_liveliness. ZEND_GOTO opcode is always replaced by ZEND_JMP at compile time). (Bob, Dmitry, Laruence)
...
Squashed commit of the following:
commit 38e22106d4
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 15:12:19 2015 +0300
Added NEWS entry
commit 0a355935bf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 15:06:32 2015 +0300
Inline function, to eliminate repeatable checks
commit d937584f3a
Merge: 0341626
32677f5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 14:35:49 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Fixed bug #70006 (cli - function with default arg = STDOUT crash output).
Fix x86 build
Fixed use after free on closure_call_leak_with_exception.phpt
Fixed test
commit 0341626ea9
Merge: 74869fa
dec35de
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 12:00:53 2015 +0300
Merge branch 'temporary_cleaning' of https://github.com/laruence/php-src into temporary_cleaning
* 'temporary_cleaning' of https://github.com/laruence/php-src :
Fixed checkpoint get
Fixed crash of invalid pointer derefer
cleanup
commit 74869fa673
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 11:45:34 2015 +0300
Fixed wrong GOTO resolution
commit dec35ded32
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 15:58:49 2015 +0800
Fixed checkpoint get
commit b0f419540a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:47:11 2015 +0300
Fixed crash of invalid pointer derefer (laruence)
commit 7a428d98ca
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:35:47 2015 +0300
Fixed identation
commit 9c3a4dce9c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 10:33:52 2015 +0300
Fixed invalid size
commit 653abc670b
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 11:29:14 2015 +0800
Fixed crash of invalid pointer derefer
commit e04500ceda
Author: Xinchen Hui <laruence@gmail.com>
Date: Tue Jul 7 11:28:26 2015 +0800
cleanup
commit 34183e1687
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:49:46 2015 +0300
op_array->T_liveliness compression
commit 2f6ad84579
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:44:44 2015 +0300
White spaces
commit be83f115a3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:42:26 2015 +0300
Identation
commit 1f5084b990
Merge: 91b620d
1adf3df
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:41:54 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Throw TypeError for invalid callback
Fix crash when exception occurs during nested rope
Fix crash when exception is thrown during ROPE_END
Small cleanup in ternary compilation
move the define to the right place
fix ext/ldap build
Rectify information about invalid shift warning being now ArithmeticError
commit 91b620d684
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 04:32:04 2015 +0300
Replace GOTO by FREE/FE_FREE and JMP at compile time
commit 7052e56979
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Jul 7 02:25:08 2015 +0300
Use zend_regenerate_var_liveliness_info() to regenerate information after pass two.
commit ae72b0dc67
Merge: a81c4bb
a919fe8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 21:02:34 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Do not display EXT_TYPE_UNUSED in phpdbg opcodes
Run debug build with opcache on travis
commit a81c4bb8c6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 20:59:34 2015 +0300
Improved algorithm. It's actually the same algorithm with second loop removed and simpler temporary data structures. The only difference may be in "re-defined" vatriable handling. Now live-range in that case started from the seconnd definition (this must be more safe).
commit 9a16810f7a
Merge: bbfbe47
001ecd3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 17:57:45 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Simplify TMP var number decoding (without HashTable)
commit bbfbe470c8
Merge: 0bda4ab
436b01e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 17:02:01 2015 +0300
Merge branch 'master' into temporary_cleaning
* master:
Avoid dangerous optimization
Fixed JMPZNZ instruction printing
Attempt at falling back on ldap_find_control for Mac OS
commit 0bda4abea7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 16:05:33 2015 +0300
Fixed live-range construction for OP_DATA opcode
Added comments about algorithm assumtions
commit 521ad9df98
Merge: 4398dab
a09dcb0
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 14:54:15 2015 +0200
Merge branch 'master' of https://github.com/php/php-src into temporary_cleaning
commit 4398dab82f
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 13:51:27 2015 +0200
Add a few phpt tests related to temporary cleaning
commit 739656f83f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 14:28:49 2015 +0300
Fixed Zend/tests/foreach_004.phpt failure (FE_FETCH shouldn't be included into TMP vatriablr live range)
commit 3df462a2bc
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 13:41:02 2015 +0300
Improve data layout (reduce the op_array structure size on 64-bit systems)
commit 883b73c56e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Jul 6 13:28:45 2015 +0300
Removed op_array->brk_cont_array
commit ae5e58b598
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 04:22:58 2015 +0200
Fix bug with brk_cont variable free / free loop vars via temporary liveliness info
commit b4223ca627
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Mon Jul 6 04:07:07 2015 +0200
Fix bugs / cleanup fixes
commit ea33189d22
Author: Xinchen Hui <laruence@gmail.com>
Date: Sun Jul 5 20:58:38 2015 +0800
Removed useless TsTop
commit 1dbb007e4a
Merge: 550bbf8
3a8af24
Author: Xinchen Hui <laruence@gmail.com>
Date: Sat Jul 4 15:06:44 2015 +0800
Merge branch 'temporary_cleaning' of https://github.com/dstogov/php-src into temporary_cleaning
commit 3a8af24529
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 16:15:36 2015 +0300
More exceptions from regular liveliness analyses (with explanation in comments).
Mark old "unexplained" exceptions with ???.
commit ba721efa2c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 14:16:09 2015 +0300
Print list of live temp variables (at least for internal debugging)
commit 8d1f88fe91
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 13:31:56 2015 +0300
Use op_array->T_liveliness to free incomplete ropes and restore error_reporting level on exception
commit 80c1d0d779
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Jul 3 11:05:39 2015 +0300
Don't keep empty T_liveliness
commit 501ae8aaac
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 2 22:31:48 2015 +0300
Reverted changes to Zend/zend_arena.h.
Reuse CG(arena) instead of creating a new one.
commit a4fce36907
Merge: 6ff7246
fd0fcce
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Jul 2 22:01:42 2015 +0300
Merge branch 'temporary_cleaning' of github.com:bwoebi/php-src into temporary_cleaning
* 'temporary_cleaning' of github.com:bwoebi/php-src:
Fix remaining issues with compacted temporaries
Fix regression from last commit (+1 ?!)
Fix off-by-one (opcache may remove last ZEND_RETURN)
Speed algorithm up, more fail safety when reusing temporaries
Dumb bug in opcode.c (forgot to update Ts[i])
Fix opcache support
Exempt ROPE temporaries from freeing
Hmm, we need temporary info for all the opcodes
Add opcache support for cleaning in optimization step (Opcache seems to have a few unrelated issues which blow up together with that patch)
Add proper temporary cleaning upon frame abortion
Fix arena on small sizes (size < sizeof(zend_arena))
commit fd0fcce811
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Thu Jul 2 20:00:33 2015 +0200
Fix remaining issues with compacted temporaries
commit 427dc58bbb
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 22:49:12 2015 +0200
Fix regression from last commit (+1 ?!)
commit 1adcf56a6e
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 22:17:07 2015 +0200
Fix off-by-one (opcache may remove last ZEND_RETURN)
commit 25b231b784
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 20:59:24 2015 +0200
Speed algorithm up, more fail safety when reusing temporaries
commit 22d9d05350
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 16:48:46 2015 +0200
Dumb bug in opcode.c (forgot to update Ts[i])
commit 6538269bfa
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Wed Jul 1 13:05:52 2015 +0200
Fix opcache support
commit 333a7c4a88
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Sat Jun 27 22:40:21 2015 +0200
Exempt ROPE temporaries from freeing
commit 02585f7708
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 16:20:55 2015 +0200
Hmm, we need temporary info for all the opcodes
commit cbcaedbd78
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 01:04:09 2015 +0200
Add opcache support for cleaning in optimization step
(Opcache seems to have a few unrelated issues which blow up together with that patch)
commit fef649f406
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Fri Jun 26 01:02:27 2015 +0200
Add proper temporary cleaning upon frame abortion
commit 1cec2e7271
Author: Bob Weinand <bobwei9@hotmail.com>
Date: Thu Jun 25 23:33:21 2015 +0200
Fix arena on small sizes (size < sizeof(zend_arena))
2015-07-07 15:41:12 +03:00
Xinchen Hui
7af4e6d02d
Fixed bug #70006 (cli - function with default arg = STDOUT crash output).
2015-07-07 19:21:02 +08:00
Xinchen Hui
333528089e
Fixed use after free on closure_call_leak_with_exception.phpt
2015-07-07 18:19:57 +08:00
Dmitry Stogov
636c16b186
Fixed test
2015-07-07 10:14:37 +03:00
Aaron Piotrowski
1adf3df81e
Throw TypeError for invalid callback
...
Matches behavior of zend_internal_type_error() if E_ERROR is passed to
zend_wrong_callback_error().
2015-07-06 15:03:35 -05:00
Nikita Popov
724051e3bd
Fix crash when exception occurs during nested rope
...
Adds extra condition that the rope var of INIT/ADD must match the
one one END.
2015-07-06 20:53:54 +02:00
Nikita Popov
89ce8d28de
Fix crash when exception is thrown during ROPE_END
...
The CHECK_EXCEPTION() was done at a point where the old opline is
still used, thus redirecting the write to the result var into
EX(call) instead.
Handling the exception in-place to avoid leaking result.
2015-07-06 20:15:45 +02:00
Nikita Popov
f3498783df
Small cleanup in ternary compilation
2015-07-06 20:15:45 +02:00
Xinchen Hui
84e07b08bd
Reorder the conditions
2015-07-06 15:24:51 +08:00
Xinchen Hui
ce550cefde
Fixed segfault while with generating ext info
2015-07-06 15:22:40 +08:00
Anatol Belski
a97f764472
bring back the division by zero warning
2015-07-05 20:18:17 +02:00
Bob Weinand
56b6e0dd14
Fix use after free with opcache (interned strings)
2015-07-05 02:00:52 +02:00
Kalle Sommer Nielsen
12b79fcb05
This macro check is not needed (Anatol)
2015-07-04 21:21:15 +02:00
Kalle Sommer Nielsen
ce2cd89258
Replace references to PHP_WIN32 and TSRM_WIN32 with ZEND_WIN32 in Zend/, this also fixes 1 instance of where fflush(stderr) was misplaced (zend_extensions.c)
2015-07-04 18:55:22 +02:00
Aaron Piotrowski
1a0ddf988c
Switch code on thrown Errors to 0, update related tests
2015-07-03 17:53:42 -05:00
Aaron Piotrowski
fbcc823952
Remove E_EXCEPTION
2015-07-03 17:53:42 -05:00
Aaron Piotrowski
02623ddb82
Switch macro with __VA_ARGS__ to function
2015-07-03 17:53:41 -05:00
Aaron Piotrowski
22c38b2ef5
Remove need to pass error level
2015-07-03 17:53:41 -05:00
Aaron Piotrowski
5a99c07ecc
Enable throwing custom exceptions from errors
2015-07-03 17:53:40 -05:00
Nikita Popov
866bd89b1d
Always report object leaks
...
Previously cycles were excluded from leak reports, however the
situation here has improved a lot in the meantime and we can
report all leaks.
2015-07-03 19:33:34 +02:00
Aaron Piotrowski
ed1b64877d
Switch position of ce in exception ce variable names
2015-07-03 09:45:03 -05:00
Aaron Piotrowski
a812a74c2e
Change zend_exception_get_default() to zend_exception_ce
2015-07-03 09:44:48 -05:00
Aaron Piotrowski
f9e9d3a437
Cleanup exception ce API
...
Removed recently added functions to get Error ce's and marked the old functions
fetching default_exception_ce and error_exception_ce as deprecated.
2015-07-03 09:44:30 -05:00
Xinchen Hui
e8f992c163
Catch the specifical exception
2015-07-03 11:18:53 +08:00
Aaron Piotrowski
68baa539dc
Allow integer default for float type
2015-07-02 18:07:24 -05:00
Niklas Keller
5f72d94a8b
Correct type hint name for booleans in method signatures
2015-07-02 21:14:30 +02:00
Bob Weinand
94722e12cf
Introduce ArithmeticError
2015-07-02 20:47:44 +02:00
Xinchen Hui
72b0627315
Fixed bug #69521 (Segfault in gc_collect_cycles()).
2015-07-02 18:43:06 +08:00
Xinchen Hui
3422fb57c8
Use hash_str directly
2015-07-02 12:31:26 +08:00
Xinchen Hui
ba91bc36cd
Same here
2015-07-02 12:23:50 +08:00
Xinchen Hui
ba711aec30
Use one_char_string
2015-07-02 12:19:55 +08:00
Xinchen Hui
0e68e27854
Use one_char_string
2015-07-02 12:18:23 +08:00
Bob Weinand
06fcf94c45
CT eval ZEND_DIV in all cases (warning was removed)
2015-07-02 02:20:58 +02:00
Bob Weinand
007d7ac7ca
Use DivisionByZeroError instead of exception for %/intdiv()
2015-07-02 02:20:58 +02:00
Bob Weinand
f9724b93f6
Remove warning upon division by zero
2015-07-02 02:20:58 +02:00
Dmitry Stogov
d2d326a381
Cleanup (avoid reallocatios and side effects in php_strip_tags)
2015-07-01 19:04:18 +03:00
Rasmus Lerdorf
324d5ecb7e
debug_print_backtrace has a 2nd optional arg
2015-06-30 09:57:49 -07:00
Xinchen Hui
ab0771c60a
Merge branch 'amortize-hash-compaction' of https://github.com/kaja47/php-src
2015-06-30 21:26:07 +08:00
Dmitry Stogov
7aa7627172
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 13:59:27 +03:00
Aaron Piotrowski
f7565a93d8
Add tests for dynamic static call to instance method
2015-06-30 07:07:17 +02:00
Aaron Piotrowski
ffd36e0fc8
Throw Error on dynamic call to instance method when called statically
2015-06-30 07:07:17 +02:00
Bob Weinand
dd2e6e866d
Fix test failures from previous commit
...
(I really don't get that issue in phar... if there's a better fix, it's welcome...)
2015-06-30 07:02:56 +02:00
Dmitry Stogov
4a2e40bb86
Use ZSTR_ API to access zend_string elements (this is just renaming without semantick changes).
2015-06-30 04:05:24 +03:00
Dmitry Stogov
4bd22cf1c1
Improved zend_string API (Francois Laupretre)
...
Squashed commit of the following:
commit d96eab8d79
Author: Francois Laupretre <francois@tekwire.net>
Date: Fri Jun 26 01:23:31 2015 +0200
Use the new 'ZSTR' macros in the rest of the code.
Does not change anything to the generated code (thanks to compat macros) but cleaner.
commit b352643910
Author: Francois Laupretre <francois@tekwire.net>
Date: Thu Jun 25 13:45:06 2015 +0200
Improve zend_string API
Add missing methods
2015-06-29 16:44:54 +03:00
Dmitry Stogov
66031cfe19
Restored old behavior
2015-06-29 14:10:46 +03:00
Dmitry Stogov
0b35e4a3be
Revert "Fixed last previously broken tests"
...
This reverts commit 79b1832dd5
.
2015-06-29 13:05:14 +03:00
Dmitry Stogov
642c379092
Prevent attempts of compile-time evaluation of invalid operators (e.g. division/modulo by zero and shift by negative number)
2015-06-29 12:58:07 +03:00
Dmitry Stogov
1bba4452e7
Reverted wrong fb08798c9f
2015-06-29 12:20:09 +03:00
Dmitry Stogov
8e923197b4
Fixed bug #69955 (Segfault when trying to combine [] and assign-op on ArrayAccess object). (Laruence)
2015-06-29 11:17:56 +03:00
Xinchen Hui
4cc0096e00
Fixed memroy errors with valgrind
2015-06-29 15:36:02 +08:00
Xinchen Hui
5ba28d76d2
Fixed segfault in wordpress (introduced in rev 4a4529adb0
)
2015-06-29 15:13:09 +08:00
Bob Weinand
5e16722309
Show exception source in phpdbg
2015-06-29 01:41:04 +02:00
Bob Weinand
79b1832dd5
Fixed last previously broken tests
2015-06-29 01:00:12 +02:00
Bob Weinand
e5fae77969
Show full signature upon inheritance mismatch
2015-06-29 01:00:12 +02:00
Bob Weinand
fb08798c9f
Fix bug #69957 (Different ways of handling div/mod by zero)
2015-06-28 18:22:59 +02:00
Bob Weinand
e96ad43ae6
Forgot to git add rope leak test
2015-06-28 15:44:53 +02:00
Bob Weinand
4a4529adb0
Fix rope memory leaks upon exception
2015-06-28 15:42:15 +02:00
Xinchen Hui
f70950d004
Fixed ZEND_VM_DEFINE_OP build when --without-specializer
2015-06-28 21:16:08 +08:00
Xinchen Hui
a486294e7d
Unused ret
2015-06-28 19:16:00 +08:00
Bob Weinand
25e1b49ea1
Fix warning in zend_execute.c by explicit cast
2015-06-26 20:39:56 +02:00
Bob Weinand
2894bc5bb8
Use ZEND_INIT_STATIC_METHOD_CALL for literals of form "classname::method"
2015-06-26 19:55:13 +02:00
Aaron Piotrowski
1d704a05ee
Fix closure leak test
2015-06-26 16:30:01 +02:00
Aaron Piotrowski
8bd95b8cdc
Fix test duplication, add more tests
2015-06-26 16:30:01 +02:00
Bob Weinand
1335ebd068
Fix Closure leak in aborted INIT_DYNAMIC_FCALL
2015-06-26 05:10:58 +02:00
Aaron Piotrowski
bc0df38e88
Added more indirect call tests, remove invalid test
2015-06-25 19:46:28 -05:00
Aaron Piotrowski
ba67fc2218
Fix 'Class::method' indirect call with empty method name
2015-06-25 19:37:52 -05:00
Dmitry Stogov
2a2f42c25d
Optimize out usless conditions used by specializer
2015-06-25 18:56:14 +03:00
Dmitry Stogov
f5fd58f737
Better check for __builtin_constant_p() availability
2015-06-25 12:02:28 +03:00
Dmitry Stogov
90976c9978
Moved test to correct place
2015-06-25 11:22:21 +03:00
Rasmus Lerdorf
1201be392f
3rd arg to define() is optional
2015-06-23 23:53:23 -04:00
Rasmus Lerdorf
41774bceff
Fix more minor mistakes in the proto comments
2015-06-23 15:47:33 -04:00
Nikita Popov
ea5c66ec93
Avoid op_num = -1 in unfinished generator cleanup
...
Also add two tests showing that the -1 substraction in the
computation of op_num is really necessary.
2015-06-23 20:17:30 +02:00
Rasmus Lerdorf
f4d08d8e5c
Fix incorrect protos
2015-06-23 14:15:24 -04:00
Dmitry Stogov
7a01c44ab2
Fixed bug #69905 (null ptr deref and segfault in ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER)
2015-06-23 16:26:40 +03:00
Nikita Popov
8a83aed458
Drop duplicate object-to-type notices
...
We already generate a recoverable fatal for these earlier, no need
to throw an additional notice.
2015-06-22 16:25:32 +02:00
Dmitry Stogov
d4cd659b5a
Merge branch 'master' of git.php.net:php-src
...
* 'master' of git.php.net:php-src:
Drop superfluous __toString handling code
2015-06-22 17:07:25 +03:00
Dmitry Stogov
567aa1783e
Added comments
2015-06-22 16:39:07 +03:00
Nikita Popov
628d439402
Drop superfluous __toString handling code
...
This is already covered by the cast_object invokation above it. We
do not use this kind of fallback in any other casting code anymore.
2015-06-22 15:33:41 +02:00
Bob Weinand
70e86b8766
Also try __has_builtin() where builtins are used
2015-06-22 13:24:39 +02:00
Dmitry Stogov
44d545b8e1
Avoid overhead in RELEASE build.
2015-06-22 13:08:33 +03:00
Dmitry Stogov
b97df475df
Fixed crash in Zend/tests/bug69891.phpt on x86 (32-bit).
...
compare_function() now has to be compatible with binary_op_type (use fastcall convention).
Introduced new zval_compare_function() to be used as zval comparison callback instead of compare_function().
2015-06-22 12:53:52 +03:00
Dmitry Stogov
ed418312a5
Revert "Fix arginfo for built-in engine functions"
...
This reverts commit d2356541d0
.
2015-06-22 11:44:57 +03:00
Dmitry Stogov
3db071dba2
Revert "Fix set_error_handler() arginfo"
...
This reverts commit b5240280b0
.
2015-06-22 11:44:49 +03:00
Dmitry Stogov
82b92cfa2e
Revert "And actually use this new arginfo data"
...
This reverts commit 932c95fb31
.
2015-06-22 11:44:39 +03:00
Dmitry Stogov
539593ce15
Revert "Fix each() arginfo"
...
This reverts commit 19fd124bcf
.
2015-06-22 11:44:29 +03:00
Dmitry Stogov
9a68fe51d7
Revert "Fix genarginfo to respect by-ref passing"
...
This reverts commit db6990a91b
.
2015-06-22 11:44:13 +03:00
Dmitry Stogov
13d5893c2a
Revert "Several return type fixes, still not completed... Incomplete prototypes :-/"
...
This reverts commit 851b95fc49
.
2015-06-22 11:44:01 +03:00
Bob Weinand
851b95fc49
Several return type fixes, still not completed... Incomplete prototypes :-/
2015-06-22 10:36:42 +02:00
Bob Weinand
db6990a91b
Fix genarginfo to respect by-ref passing
2015-06-22 10:17:35 +02:00
Bob Weinand
19fd124bcf
Fix each() arginfo
2015-06-22 10:03:14 +02:00
Rasmus Lerdorf
932c95fb31
And actually use this new arginfo data
2015-06-22 00:12:48 -04:00
Rasmus Lerdorf
b5240280b0
Fix set_error_handler() arginfo
2015-06-21 23:48:00 -04:00
Rasmus Lerdorf
d2356541d0
Fix arginfo for built-in engine functions
2015-06-21 21:50:09 -04:00
Bob Weinand
5314f13fc6
Fix accidental function related flag value reuse
2015-06-22 01:36:17 +02:00
Bob Weinand
3c288b12b4
Fix bad run_time_cache with Closure::call()
...
This also fixes a memory "leak" (memory is allocated on unbounded arena without limits) on each new Closure instantiation.
Closures with same scope now all share the same run_time_cache (as long as it is arena allocated)
2015-06-21 16:39:44 +02:00
Bob Weinand
115e9288bb
Fix segfault with scalar passed to typehint with not loaded class
2015-06-21 01:35:22 +02:00
Nikita Popov
f58ebb3609
Load/restore VM stack before unfinished generator cleanup
2015-06-20 19:09:25 +02:00
Bob Weinand
ffe0f470d6
Fix bad test (oops)
2015-06-20 18:59:47 +02:00
Nikita Popov
6a4877ee17
Add test for previous commit
2015-06-20 18:38:59 +02:00
Nikita Popov
ddf41d3aeb
Fix generator memory leak
...
Make sure HANDLE_EXCEPTION and generator unwinds stay in sync in
the future by extracting a common function.
2015-06-20 18:37:28 +02:00
Bob Weinand
7adc0ae631
Fix potential writes into wrong memory, ensure vm_stack integrity
...
Fixes also a segfault on stack frames > 1 << 18 bytes
Stack frames, when reallocated, need to be marked as top frame of current stack page
2015-06-20 18:29:09 +02:00
Nikita Popov
23e1e1295f
Clean up zend_hash_compare implementation
...
Split off zend_hash_compare_impl into separate function that does
not bother with recursion protection. We had two cases where
UNPROTECT_RECURSION was missing.
2015-06-20 17:35:16 +02:00
Nikita Popov
e8217a2727
Fix bug #69891
2015-06-20 17:23:58 +02:00
Nikita Popov
5bf7a3aac7
Fixed bug #69893
2015-06-20 17:14:48 +02:00
Nikita Popov
9589d26ef3
Merge branch 'PHP-5.6'
...
Conflicts:
Zend/zend_hash.c
2015-06-20 16:50:37 +02:00
Nikita Popov
e09d3155a1
Merge branch 'PHP-5.5' into PHP-5.6
2015-06-20 16:40:53 +02:00
Nikita Popov
5fe078abba
Fixed bug #69892
2015-06-20 16:40:14 +02:00
Nikita Popov
9fa70dbd29
Fixed bug #69889
...
There is one case that requires further discussion:
$foo = "test";
var_dump($foo[0.0] ?? "default");
var_dump(isset($foo[0.0]) ? $foo[0.0] : "default");
Here the former will currently return "t", while the latter also
returns "t" and additionally throws a notice.
I think we need to revisit the behavior of invalid types for string
offset access in PHP 7, as currently there is some mismatch between
what isset() does and what the access itself supports.
2015-06-20 15:09:58 +02:00
Nikita Popov
c7f4c5a2fe
Avoid unnecessary separations in VERIFY_RETURN_TYPE
2015-06-20 14:12:59 +02:00
Nikita Popov
a684e6adb2
Drop unnecessary %prec
...
Leftover from a previous implementation
2015-06-20 13:10:51 +02:00
Xinchen Hui
89fda08473
This test should be kept
2015-06-19 23:13:23 +08:00
Xinchen Hui
307c734bed
Better way to fix (Fix bug #69871 (short-circuiting failure with smart_branch))
2015-06-19 23:05:35 +08:00
Xinchen Hui
235c7edb8b
Revert "Fix bug #69871 (short-circuiting failure with smart_branch)"
...
This reverts commit fae6bedea5
.
2015-06-19 23:03:23 +08:00
Bob Weinand
fae6bedea5
Fix bug #69871 (short-circuiting failure with smart_branch)
2015-06-18 15:59:00 +02:00
Xinchen Hui
509d75527a
Fixed Conditional jump or move depends on uninitialised value(s)
...
reproduced by Bug #69868 's test script
2015-06-18 19:56:50 +08:00
Xinchen Hui
c58c5e779a
Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting)
2015-06-18 19:53:26 +08:00
Aaron Piotrowski
4fb362704c
Add tests with invalid Error construction params
2015-06-17 19:49:02 -05:00
Aaron Piotrowski
8813b389ea
Fix bug when constructing an Error with invalid params
2015-06-17 19:48:17 -05:00
Anatol Belski
f97dbb058f
cleanup unused var
2015-06-18 00:53:23 +02:00
Anatol Belski
e665b27623
fix c/p test title
2015-06-18 00:33:16 +02:00
Anatol Belski
577c1f3e95
preserve the orig class name when extending the ErrorException
2015-06-18 00:30:16 +02:00
Anatol Belski
9076eb26c7
dont use function to fetch default exception ce
2015-06-18 00:21:38 +02:00
Anatol Belski
8486505651
more tests
2015-06-18 00:15:34 +02:00
Anatol Belski
57940664a8
fix crash when invalid exception arguments passed
2015-06-18 00:14:57 +02:00
Christoph M. Becker
653c869348
Fix #61362 : Exception::getTraceAsString and ::__toString scramble Unicode
...
The logic in smart_str_append_escaped() relies on unsigned values of c, so we
have to declare it as such.
2015-06-17 22:31:07 +02:00
Anatol Belski
269acaa363
Merge branch 'pull-request/1284'
...
* pull-request/1284:
Rename interface macros
Fix typo in UPGRADING
Move definition of Throwable to zend_exceptions.h/c
Check for zend_ce_throwable instead
Fix some missed tests
Add Throwable tests
Fix previous exception type check
Updated UPGRADING with RFC link
Changed AssertionException to AssertionError
Update exception error messages
Throwable method signatures.
Update exception names in tests after formatting changes.
Merge exception formatting changes.
Make zend_get_exception_base static.
Fix a few missed tests.
Fix handler double copy.
Updated tests to reflect exception class changes.
Remodel exceptions based on Throwable interface
2015-06-17 21:55:03 +02:00
Aaron Piotrowski
c5eb924e9e
Rename interface macros
...
Renamed REGISTER_INTERFACE (formerly
REGISTER_ITERATOR_INTERFACE) to
REGISTER_MAGIC_INTERFACE and renamed
REGISTER_ITERATOR_IMPLEMENT to
REGISTER_MAGIC_IMPLEMENT. Both have now been
moved to zend_interfaces.h.
2015-06-17 13:54:09 -05:00
Dmitry Stogov
4a6e1345e2
Use COW to prevent unnecessary duplication of dynamic propertyes of stdClass (and other classes without predefined properties).
2015-06-17 12:50:16 +03:00
Dmitry Stogov
a524a375d9
Improved class type hints checks, by caching resolved class entries in run-time cache.
2015-06-17 12:07:43 +03:00
Nikita Popov
fb346c8f93
Support references in convert_to_*
...
conver_to_* functions now accept REFERENCE values, which will be
unwrapped before performing the usual conversion. This is consistent
with convert_scalar_to_number and matches the expected behavior in
a couple random use-sites I checked.
Also includes a couple fixes/cleanups elsewhere and two tests for
cases that previously didn't work (though the reference issue existed
all over the place).
2015-06-16 19:55:33 +02:00
Nikita Popov
4448843b7c
Move check for CT div by zero into common function
2015-06-16 18:09:59 +02:00
Nikita Popov
183c00ddb6
Fix references handling in convert_scalar_to_number
2015-06-16 18:02:45 +02:00
Bob Weinand
52e9a772a3
Fully fixing all the affected const expr cases (see bug #69832 )
2015-06-16 16:53:30 +02:00
Dmitry Stogov
3e57e50fb0
Removed useless #ifdef
2015-06-16 17:17:49 +03:00
Dmitry Stogov
48ed660cdf
Make CALL VM with FP and IP in global registers not to return anything from opcode handlers.
...
Set OPLINE to NULL to terminate VM loop instead.
This saves 1 CPU instruction for each opcode handler.
2015-06-16 14:11:16 +03:00
Dmitry Stogov
3180b8e100
Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name) (onr more problem)
2015-06-16 13:29:17 +03:00