summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
Commit message (Collapse)AuthorAgeFilesLines
* Don't add num_additional_args in SEND opcodesNikita Popov2014-02-261-22/+12
| | | | | | Now that trailing positional args are disallowed, num_additional_args will always be zero in SEND opcodes (and FUNC_ARG fetches).
* add T_POW (**) operatordatibbaw2014-02-061-0/+365
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed recognition of the operator Added opcode, still doing multiply instead of pow() opcode now always returns int(42) The right answer, but always a float Yanked code from pow() implementation. Should not handle negative long as exponent ourselves Added test cases from pow() Moved precedence higher than '~' Added GMP operator overloading Added ZEND_ASSIGN_POW (**=) operator. Added pow() as a language construct. Adjusted test cases for changed precedence. Reduced pow() to shell function around ZEND_API pow_function() Reduced test case to only contain edge cases Added overloading test case Moved unary minus above T_POW Revert "Added pow() as a language construct." Bad bad bad idea. This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02. Reverted unary minus behaviour due to previous revert. Convert arrays to int(0) Exponent with array as a base becomes int(0) Rebase against master Fixed tokenizer test case
* Fix argument unpacking across stack pagesNikita Popov2014-01-181-2/+6
| | | | | | | | | If multiple unpacks were used (or mixed with normal arguments) parts of the arguments could land on different stack pages. If this occurs the arguments will now be copied to a new stack page. The code used to do this is copied verbatim from the PHP 5.4 branch and only modified to reduce the amount of inlined code.
* Implement argument unpackingNikita Popov2014-01-111-77/+363
| | | | RFC: https://wiki.php.net/rfc/argument_unpacking
* Bump yearXinchen Hui2014-01-031-1/+1
|
* Use memcmp here is betterXinchen Hui2013-12-171-3/+3
|
* Fixed bug #65784 (Segfault with finally).Xinchen Hui2013-12-131-14/+35
|
* Merge branch 'PHP-5.5' into PHP-5.6Nikita Popov2013-11-301-125/+225
|\
| * Fixed bug #66041: list() fails to unpack yielded ArrayAccess objectNikita Popov2013-11-301-125/+225
| | | | | | | | | | | | Yield return values now use IS_VAR rather than IS_TMP_VAR. This fixes the issue with list() and should also be faster as it avoids doing a zval copy.
* | Merge branch 'const_scalar_exprs' into PHP-5.6Bob Weinand2013-11-281-9/+5
|\ \ | | | | | | | | | | | | Conflicts: Zend/zend_extensions.h
| * | Constant expressions refactoringDmitry Stogov2013-11-061-1/+0
| | |
| * | Merge branch 'const_scalar_exprs' of github.com:bwoebi/php-src into ↵Dmitry Stogov2013-11-061-9/+6
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | const_scalar_exprs * 'const_scalar_exprs' of github.com:bwoebi/php-src: Removed operations on constant arrays. They make no sense as constants are not allowed to be arrays. And as just properties are allowed to; no problem, we still don't need operations on any constant array. Added a few more operators Whitespace fix converted several switches to ifs and made more opcache friendly Fatal error about self referencing constants fixed Fixed mem leaks, added tests and ternary operator Working commit for constant scalar expressions (with constants). Tests will follow. Conflicts: Zend/Makefile.am configure.in win32/build/config.w32
| | * | converted several switches to ifs and made more opcache friendlyBob Weinand2013-11-011-56/+33
| | | |
| | * | Working commit for constant scalar expressions (with constants).Bob Weinand2013-10-311-36/+56
| | | | | | | | | | | | | | | | Tests will follow.
* | | | Don't check argument types for internal functions without type hintingDmitry Stogov2013-11-281-1/+1
| | | |
* | | | Removed deprecated AI_SET_PTR()sDmitry Stogov2013-11-271-256/+196
| | | |
* | | | Merge branch 'PHP-5.5' into PHP-5.6Dmitry Stogov2013-11-271-262/+138
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | | | | | | | | | | | | | * PHP-5.5: Fixed bug #65969 (Chain assignment with T_LIST failure) Conflicts: NEWS Zend/zend_vm_def.h Zend/zend_vm_execute.h
| * | Merge branch 'PHP-5.4' into PHP-5.5Dmitry Stogov2013-11-271-335/+199
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PHP-5.4: Fixed bug #65969 (Chain assignment with T_LIST failure) Conflicts: NEWS Zend/zend_vm_def.h Zend/zend_vm_execute.h
| | * | Fixed bug #65969 (Chain assignment with T_LIST failure)Dmitry Stogov2013-11-271-111/+135
| | | |
* | | | Removed unnecessary GC checksDmitry Stogov2013-10-311-497/+497
| |_|/ |/| |
* | | Merge branch 'PHP-5.5'Dmitry Stogov2013-10-281-192/+156
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | * PHP-5.5: Use zval* instead of zval** Conflicts: Zend/zend_vm_def.h Zend/zend_vm_execute.h
| * | Use zval* instead of zval**Dmitry Stogov2013-10-281-180/+156
| | |
* | | Merge branch 'PHP-5.5'Nikita Popov2013-10-041-60/+0
|\ \ \ | |/ /
| * | Fix bug #65821: By-ref foreach on property access of string offset segfaultsNikita Popov2013-10-041-60/+0
| | | | | | | | | | | | | | | This removes the now unnecessary ZEND_FETCH_ADD_LOCK on the container of a property fetch of a by-reference foreach.
* | | Implement variadic function syntaxNikita Popov2013-09-261-0/+56
| | | | | | | | | | | | As per RFC: https://wiki.php.net/rfc/variadics
* | | Save a TSRMLS_FETCH() for zval_ptr_dtor in executorNikita Popov2013-09-141-1/+1
| | | | | | | | | | | | This gives me about 9% improvement on Zend/bench.php for a zts build.
* | | Provide more macros for handling of interned stringsNikita Popov2013-09-131-257/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * str_erealloc behaves like erealloc for normal strings, but will use emalloc+memcpy for interned strings. * str_estrndup behaves like estrndup for normal strings, but will not copy interned strings. * str_strndup behaves like zend_strndup for normal strings, but will not copy interned strings. * str_efree_rel behaves like efree_rel for normal strings, but will not free interned strings. * str_hash will return INTERNED_HASH for interned strings and compute it using zend_hash_func for normal strings.
* | | Implement phase 1 of rfc/incompat_ctxGustavo André dos Santos Lopes2013-09-021-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Just changing the error level of the message from E_STRICT to E_DEPRECATED. This comes one version later than the timeline mentioned in the RFC. Oddly, there were no tests for this ‘feature’. I added a simple one.
* | | Always pass return_value_ptr to internal functionsNikita Popov2013-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previous some places passed return_value_ptr only if the function returned by reference. Now return_value_ptr is always set, even for functions returning by-value. This allows you to return zvals without copying their contents. For this purpose two new macros RETVAL_ZVAL_FAST and RETURN_ZVAL_FAST are added: RETVAL_ZVAL_FAST(zv); /* Analog to RETVAL_ZVAL(zv, 1, 0) */ RETURN_ZVAL_FAST(zv); /* Analog to RETURN_ZVAL(zv, 1, 0) */ These macros behave similarly to the non-FAST versions with copy=1 and dtor=0, with the difference that the FAST versions will try return the zval without copying by utilizing return_value_ptr.
* | | Merge branch 'PHP-5.5'Anatol Belski2013-08-231-0/+7
|\ \ \ | |/ / | | | | | | | | | | | | * PHP-5.5: Suppress static analyzer warnings in specialized executor Update NEWS
| * | Suppress static analyzer warnings in specialized executorAnatol Belski2013-08-231-0/+7
| | | | | | | | | | | | | | | As things like if(0) will be removed by the compiler, no need to see that tons of warnings with static analyzer enabled.
* | | Merge branch 'PHP-5.5'Xinchen Hui2013-08-141-1/+1
|\ \ \ | |/ /
| * | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-08-141-1/+1
| |\ \ | | |/
| | * Fixed #65431 (Discarded qualifiers from pointer target warnings when using ↵Xinchen Hui2013-08-141-1/+1
| | | | | | | | | | | | --enable-dtrace) by Sixd
* | | Fixed bug #65382 (Segfault in closure_030.phpt)Dmitry Stogov2013-08-121-4/+4
| | |
* | | Merge branch 'PHP-5.5'Xinchen Hui2013-08-061-0/+4
|\ \ \ | |/ /
| * | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-08-061-0/+4
| |\ \ | | |/
| | * Re-fix Bug #65372 (Segfault in gc_zval_possible_root when return reference ↵Xinchen Hui2013-08-061-0/+4
| | | | | | | | | | | | | | | | | | fails) Missed a zval_copy_ctor there
* | | Merge branch 'PHP-5.5'Xinchen Hui2013-08-021-12/+20
|\ \ \ | |/ /
| * | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-08-021-12/+20
| |\ \ | | |/
| | * Fixed bug Bug #65372 (Segfault in gc_zval_possible_root when return ↵Xinchen Hui2013-08-021-12/+20
| | | | | | | | | | | | reference fails)
* | | Merge branch 'PHP-5.5'Stanislav Malyshev2013-07-211-4/+4
|\ \ \ | |/ / | | | | | | | | | | | | * PHP-5.5: backward compatibility HASH_KEY_NON_EXISTANT fix
| * | HASH_KEY_NON_EXISTANT fixVeres Lajos2013-07-211-4/+4
| | |
* | | Merge branch 'PHP-5.5'Xinchen Hui2013-07-141-64/+112
|\ \ \ | |/ / | | | | | | | | | Conflicts: Zend/zend_vm_execute.h
| * | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-07-141-64/+112
| |\ \ | | |/ | | | | | | | | | | | | Conflicts: Zend/zend_vm_def.h Zend/zend_vm_execute.h
| | * Fixed bug #65254 (Exception not catchable when exception thrown in autoload ↵Xinchen Hui2013-07-141-72/+128
| | | | | | | | | | | | with a namespace).
| | * Fixed merge wronglyXinchen Hui2013-06-091-1/+1
| | |
* | | Merge branch 'PHP-5.5'Xinchen Hui2013-06-091-0/+2
|\ \ \ | |/ /
| * | Merge branch 'PHP-5.4' into PHP-5.5Xinchen Hui2013-06-091-0/+2
| |\ \ | | |/ | | | | | | | | | Conflicts: Zend/zend_vm_def.h
| | * Merge branch 'PHP-5.3' into PHP-5.4Xinchen Hui2013-06-091-0/+2
| | |\