Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reference dynamic functions through dynamic_defs | Nikita Popov | 2021-03-01 | 1 | -0/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, dynamically declared functions and closures are inserted into the function table under a runtime definition key, and then later possibly renamed. When opcache is not used and a file containing a closure is repeatedly included, this leads to a very large memory leak, as the no longer needed closure declarations will never be freed (https://bugs.php.net/bug.php?id=76982). With this patch, dynamic functions are instead stored in a dynamic_func_defs member on the op_array, which opcodes reference by index. When the parent op_array is destroyed, the dynamic_func_defs it contains are also destroyed (unless they are stilled used elsewhere, e.g. because they have been bound, or are used by a live closure). This resolves the fundamental part of the leak, though doesn't completely fix it yet due to some arena allocations. The main non-obvious change here is to static variable handling: We can't destroy static_variables_ptr in destroy_op_array, as e.g. that would clear the static variables in a dynamic function when the op_array containing it is destroyed. Static variable destruction is separated out for this reason (we already do static variable destruction separately for normal functions, so we only need to handle main scripts). Closes GH-5595. | ||||
* | Replace zend_bool uses with bool | Nikita Popov | 2021-01-15 | 1 | -1/+1 |
| | | | | | | | We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool is retained as an alias. | ||||
* | Constify char * arguments of APIs | twosee | 2020-06-08 | 1 | -6/+6 |
| | | | | Closes GH-5676. | ||||
* | Remove mention of PHP major version in Copyright headers | Gabriel Caruso | 2019-09-25 | 1 | -2/+0 |
| | | | | Closes GH-4732. | ||||
* | Remove year range from copyright notice | Zeev Suraski | 2019-01-30 | 1 | -1/+1 |
| | |||||
* | Trailing whitespaces | Gabriel Caruso | 2018-01-03 | 1 | -1/+1 |
| | | | | Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com> | ||||
* | year++ | Xinchen Hui | 2018-01-02 | 1 | -1/+1 |
| | |||||
* | Update copyright headers to 2017 | Sammy Kaye Powers | 2017-01-02 | 1 | -1/+1 |
| | |||||
* | - get rid of EG(scope). zend_get_executed_scope() should be used instead. | Dmitry Stogov | 2016-04-28 | 1 | -2/+4 |
| | | | | - ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter. | ||||
* | Fix bug #71575 removing extra semicolons outside macros | James Titcumb | 2016-03-03 | 1 | -1/+1 |
| | |||||
* | Fix crash when advancing inside an internal function | Bob Weinand | 2016-02-17 | 1 | -2/+2 |
| | | | | This just happened in the "double ctrl+c" mode, when we halted inside an internal function; there was some code assuming a proper op_array | ||||
* | Format string fixes | Nikita Popov | 2016-02-14 | 1 | -2/+2 |
| | | | | | Conflicts: ext/pgsql/pgsql.c | ||||
* | Merge branch 'PHP-5.6' into PHP-7.0 | Lior Kaplan | 2016-01-01 | 1 | -1/+1 |
|\ | | | | | | | | | * PHP-5.6: Happy new year (Update copyright to 2016) | ||||
| * | Happy new year (Update copyright to 2016) | Lior Kaplan | 2016-01-01 | 1 | -1/+1 |
| | | |||||
| * | bump year | Xinchen Hui | 2015-01-15 | 1 | -1/+1 |
| | | |||||
| * | go back with phpdbg to the state of 5.6.3, reverting the controversial ↵ | Ferenc Kovacs | 2014-11-26 | 1 | -61/+50 |
| | | | | | | | | commits(remote debugging/xml protocol) | ||||
* | | Always lowercase function names for lookup in phpdbg -p | Bob Weinand | 2015-07-22 | 1 | -6/+12 |
| | | |||||
* | | Fixed opcodes printing. | Xinchen Hui | 2015-07-22 | 1 | -6/+7 |
| | | | | | | | | | | | | -p"function" -p"class::" -p"class::method" | ||||
* | | Switch asprintf to spprintf in phpdbg opcode dump | Nikita Popov | 2015-07-17 | 1 | -9/+5 |
| | | | | | | | | | | | | | | Also use %td where appropriate, a lot of the values are ptrdiff based. Fix a leak in phpdbg_frame.c. | ||||
* | | Show also runtime-bound functions/classes/methods with phpdbg -p | Bob Weinand | 2015-07-14 | 1 | -19/+55 |
| | | |||||
* | | Better opcode dump for finally | Nikita Popov | 2015-07-10 | 1 | -2/+1 |
| | | | | | | | | | | | | | | * Move opcode decode into opline decode, so we can adjust it for extended_value. * Show extended_value and secondary jump ops for FAST_CALL and FAST_RET. | ||||
* | | Simplify TMP var number decoding (without HashTable) | Dmitry Stogov | 2015-07-06 | 1 | -4/+1 |
| | | |||||
* | | Use ZSTR_ API to access zend_string elements (this is just renaming without ↵ | Dmitry Stogov | 2015-06-30 | 1 | -19/+19 |
| | | | | | | | | semantick changes). | ||||
* | | Fix phpdbg class fetch / method opcodes | Bob Weinand | 2015-05-27 | 1 | -4/+4 |
| | | |||||
* | | Print should be in *current* context (stack) | Bob Weinand | 2015-04-25 | 1 | -6/+6 |
| | | |||||
* | | Add line_start/end info to main op_array | Bob Weinand | 2015-04-25 | 1 | -2/+2 |
| | | |||||
* | | Shrink phpdbg opcode dump output a bit more | Bob Weinand | 2015-04-20 | 1 | -2/+2 |
| | | |||||
* | | show opcode count | Bob Weinand | 2015-04-20 | 1 | -16/+13 |
| | | |||||
* | | Shorten opline dump lines and show literals | Bob Weinand | 2015-04-20 | 1 | -8/+15 |
| | | |||||
* | | Provide method to access opcodes via command line argument | Bob Weinand | 2015-04-19 | 1 | -0/+118 |
| | | |||||
* | | Fix parent command offsets | Bob Weinand | 2015-03-21 | 1 | -1/+1 |
| | | |||||
* | | s/PHP Version 5/PHP Version 7/g | Lior Kaplan | 2015-03-13 | 1 | -1/+1 |
| | | | | | | | | Follow up for d0cb7153 | ||||
* | | bump year | Xinchen Hui | 2015-01-15 | 1 | -1/+1 |
| | | |||||
* | | first shot remove TSRMLS_* things | Anatol Belski | 2014-12-13 | 1 | -11/+11 |
| | | |||||
* | | Made phpdbg compatible with new engine | Bob Weinand | 2014-10-24 | 1 | -74/+83 |
|\ \ | |/ | |||||
| * | Merge phpdbg into PHP-5.6 | Bob Weinand | 2014-10-24 | 1 | -50/+61 |
| | | |||||
* | | s/PHP 5/PHP 7/ | Johannes Schlüter | 2014-09-19 | 1 | -1/+1 |
| | | |||||
* | | master renames phase 2 | Anatol Belski | 2014-08-25 | 1 | -1/+1 |
|/ | |||||
* | Merge sapi/phpdbg into PHP-5.6 | Bob Weinand | 2014-04-21 | 1 | -90/+85 |
| | |||||
* | Bump year | Xinchen Hui | 2014-01-03 | 1 | -1/+1 |
| | |||||
* | Merge branch 'master' of sapi/phpdbg into PHP-5.6 | Bob Weinand | 2013-12-20 | 1 | -0/+258 |
Including phpdbg. |