Commit Graph

11263 Commits

Author SHA1 Message Date
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