summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix off by one in short_circuiting optimizationBob Weinand2015-06-141-3/+3
|
* Simplify the conditionXinchen Hui2015-06-141-10/+5
|
* Revert "Revert "Expand optimizations regarding short-circuting a bit""Bob Weinand2015-06-141-11/+45
| | | | | | This reverts commit 3770a5ac666cdd4ff4803743232125948140450b. Fixes the bug which probably made make install fail on travis (It never happened to me that all tests passed, but make install failed...)
* Revert "Expand optimizations regarding short-circuting a bit"Xinchen Hui2015-06-141-47/+13
| | | | | | This break the CI (build error) This reverts commit 3cfa58367b1b85d346d9be6cf9ae116c63571247.
* Expand optimizations regarding short-circuting a bitBob Weinand2015-06-141-13/+47
|
* Fix short-circuting (bug #69825)Bob Weinand2015-06-141-1/+4
|
* typoXinchen Hui2015-06-131-2/+2
|
* Merge branch 'master' of git.php.net:php-srcXinchen Hui2015-06-131-0/+2
|\
| * Cache the class_name typehint key in arg_infoBob Weinand2015-06-121-0/+2
| | | | | | | | This leads to up to 2% improvement on one tested real world application by not having to always recalculate the lowercased string and its hash
* | Fixed Bug #69761 (Serialization of anonymous classes should be prevented)Xinchen Hui2015-06-131-32/+32
|/ | | | | | And also cleanup anonymous class compiling, it make no sense prefix a namespace to anonymous class name. and it is always lowcased and interned string.
* Fixed bug #69805 (null ptr deref and seg fault in zend_resolve_class_name)Xinchen Hui2015-06-121-2/+5
|
* Compile-time constant foldingDmitry Stogov2015-06-111-3/+30
|
* Fixed bug #69767 (Default parameter value with wrong type segfaults)Xinchen Hui2015-06-081-1/+2
|
* Fixed bug #69755 (segfault in ZEND_CONCAT_SPEC_TMPVAR_CONST_HANDLER)Dmitry Stogov2015-06-041-0/+9
|
* Fix Bug #69754 (Compile failure with ::class in array)Bob Weinand2015-06-031-2/+6
|
* Remove zend_init_listNikita Popov2015-05-291-12/+1
| | | | | | No longer used - zend_add_to_list already covers this. Also marked zend_add_to_list as static and dropped it from the header.
* Drop unnecessary checks for op_array->filenameNikita Popov2015-05-291-22/+8
| | | | We always require a filename.
* implicit declaration of function ‘zend_multibyte_yyinput_again’Xinchen Hui2015-05-261-0/+1
|
* Also unreserve T_CLASSBob Weinand2015-05-251-72/+116
|
* Merge branch 'master' of https://github.com/php/php-srcBob Weinand2015-05-251-12/+12
|\
| * Prevent op_array->this_var setting when method uses auto globalsDmitry Stogov2015-05-251-12/+12
| |
* | Merge context sensitive lexer RFCBob Weinand2015-05-251-2/+4
|\ \ | |/ |/|
| * ext tokenizer port + cleanup unused lexer statesMárcio Almada2015-04-301-2/+4
| | | | | | | | | | | | | | | | | | | | | | we basically added a mechanism to store the token stream during parsing and exposed the entire parser stack on the tokenizer extension through an opt in flag: token_get_all($src, TOKEN_PARSE). this change allows easy future language enhancements regarding context aware parsing & scanning without further maintance on the tokenizer extension while solves known inconsistencies "parseless" tokenizer extension has when it handles `__halt_compiler()` presence.
* | Inline zend_find_builtin_typeLevi Morrison2015-05-231-15/+4
| | | | | | | | | | This function was used only inside of zend_find_builtin_type_by_name, which is also used only one time.
* | Remove duplicationLevi Morrison2015-05-231-43/+33
| |
* | Rename some variables and functionsLevi Morrison2015-05-231-9/+9
| | | | | | | | | | | | The way these are used have little to do with them being scalars; they are just tuples with names, lengths and IS_* constants. We will probably reuse these in the future with other types.
* | Use ZEND_JMP instead of ZEND_BRK/ZEND_CONTNikita Popov2015-05-231-0/+7
| | | | | | | | | | Emit necessary FREEs during compilation, convert to JMP during pass_two (we may not know target opline beforehand).
* | Embed break/continue depth into oplineNikita Popov2015-05-231-11/+12
| | | | | | | | | | | | Previously a separate lval literal was used - this is probably a leftover from the time where the break level could still be specified dynamically.
* | Move loop var stack management into begin/end loopNikita Popov2015-05-231-33/+33
| | | | | | | | | | Also set start to -1 in begin_loop already, so the info that a loop variable is not used is already available at compile-time.
* | Drop FREE_ON_RETURN flag, check brk_cont->start insteadNikita Popov2015-05-231-10/+0
| | | | | | | | | | | | | | | | Start >= 0 already tells us whether or not the loop has a loop variable, no need to add extra flags to opcodes. Also added a test for a case where FREE_ON_RETURN is relevant, we didn't seem to have any coverage for this.
* | Fix scope_is_known() for class constantsNikita Popov2015-05-211-7/+3
| | | | | | | | | | Here the active_op_array is still the surrounding file, but we do know the scope.
* | Merged FE_FETCH_R[W] with the following ASSIGN[_REF] when assigne to CV.Dmitry Stogov2015-05-131-14/+15
| |
* | Allow self etc in eval / file scopeNikita Popov2015-05-071-0/+5
| | | | | | | | | | | | | | This fixes a regression from 16a9bc1ec20533c76ba992bfc64dd69e7b7d9001. Together with the recent closure related changes this should allow all usages of self etc, while previously (in PHP 5) some things like self::class did not work.
* | Fix compiler assumptions about self/etc wrt closuresNikita Popov2015-05-061-7/+37
| | | | | | | | | | | | | | | | | | * Don't throw an error if self/parent/static are used in a closure (outside a class). * Don't propagate self:: constants into closures * Use runtime fetch for self::class in closures Fixes bug #66811.
* | Use ZEND_FETCH_CLASS_NAME for dynamic self::class etcNikita Popov2015-05-051-22/+8
|/ | | | | Extend the opcode to support getting the parent and static name and then use it for dynamic ::class resolution.
* Disallow self etc outside classes at compile-timeNikita Popov2015-04-291-31/+36
| | | | | | | Also fix a bug with return types where "self" was rejected inside a class, but not on a method. Fallout: A couple of tests changed to more generic error messages.
* Make it inlineXinchen Hui2015-04-281-1/+1
|
* Drop compile_class_decl return valueNikita Popov2015-04-271-7/+4
| | | | Was introduced for anon classes, but no longer needed.
* Pass class_entry through IS_VAR to avoid hash lookup in ZEND_NEW.Dmitry Stogov2015-04-271-2/+2
|
* Use "safe" anonymous class names. Don't show the mangled names through ↵Dmitry Stogov2015-04-271-5/+18
| | | | var_dump().
* Refactored using specialized opcodesDmitry Stogov2015-04-271-21/+28
|
* Fix implementing_class handlingNikita Popov2015-04-261-2/+5
|
* More cleanup (mainly retab)Nikita Popov2015-04-261-2/+3
|
* Don't issue FETCH_CLASS for anon classesNikita Popov2015-04-261-17/+4
|
* More retabNikita Popov2015-04-261-21/+21
|
* Simply anon class name generationNikita Popov2015-04-261-28/+9
| | | | Drop dead "parent" code
* RetabNikita Popov2015-04-261-34/+32
|
* Revert unrelated changes / rebase fixupNikita Popov2015-04-261-20/+26
|
* Rebase Joe's anon classes implementationkrakjoe2015-04-261-34/+100
|
* Fix bug #69532Nikita Popov2015-04-251-1/+2
| | | | Partial revert of ea2fc7f935d2767c127756647f47be8d420346ce.