diff options
Diffstat (limited to 'sapi')
| -rw-r--r-- | sapi/cli/php_cli.c | 2 | ||||
| -rw-r--r-- | sapi/cli/tests/bug64529.phpt | 3 | ||||
| -rw-r--r-- | sapi/fpm/tests/010.phpt | 6 | ||||
| -rw-r--r-- | sapi/phpdbg/phpdbg_frame.c | 4 | ||||
| -rw-r--r-- | sapi/phpdbg/phpdbg_list.c | 8 | ||||
| -rw-r--r-- | sapi/phpdbg/phpdbg_print.c | 6 | ||||
| -rw-r--r-- | sapi/phpdbg/phpdbg_prompt.c | 5 | ||||
| -rw-r--r-- | sapi/phpdbg/phpdbg_watch.c | 4 |
8 files changed, 24 insertions, 14 deletions
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c index 6683f21393..09ce00f9e7 100644 --- a/sapi/cli/php_cli.c +++ b/sapi/cli/php_cli.c @@ -304,7 +304,7 @@ static size_t sapi_cli_ub_write(const char *str, size_t str_length) /* {{{ */ if (cli_shell_callbacks.cli_shell_ub_write) { size_t ub_wrote; ub_wrote = cli_shell_callbacks.cli_shell_ub_write(str, str_length); - if (ub_wrote > -1) { + if (ub_wrote != (size_t) -1) { return ub_wrote; } } diff --git a/sapi/cli/tests/bug64529.phpt b/sapi/cli/tests/bug64529.phpt index 8452953baf..7331b8303e 100644 --- a/sapi/cli/tests/bug64529.phpt +++ b/sapi/cli/tests/bug64529.phpt @@ -5,6 +5,9 @@ Bug #64529 (Ran out of opcode space) if (substr(PHP_OS, 0, 3) == "WIN") { die("skip non windows test"); } +if (!extension_loaded("readline") || !readline_info("done")) { + die("skip readline support required"); +} exec('which expect', $output, $ret); if ($ret) { die("skip no expect installed"); diff --git a/sapi/fpm/tests/010.phpt b/sapi/fpm/tests/010.phpt index f3b768f319..49e1a07923 100644 --- a/sapi/fpm/tests/010.phpt +++ b/sapi/fpm/tests/010.phpt @@ -2,6 +2,12 @@ FPM: Test status page --SKIPIF-- <?php include "skipif.inc"; ?> +--XFAIL-- +randomly intermittently failing all the time in CI, with diff: +017+ active processes: 0 +018+ total processes: 1 +017- active processes: 1 +018- total processes: 2 --FILE-- <?php diff --git a/sapi/phpdbg/phpdbg_frame.c b/sapi/phpdbg/phpdbg_frame.c index d6256a84af..f64d18b4bb 100644 --- a/sapi/phpdbg/phpdbg_frame.c +++ b/sapi/phpdbg/phpdbg_frame.c @@ -36,8 +36,6 @@ void phpdbg_restore_frame(void) /* {{{ */ /* move things back */ EG(current_execute_data) = PHPDBG_FRAME(execute_data); - - EG(scope) = PHPDBG_EX(func)->op_array.scope; } /* }}} */ void phpdbg_switch_frame(int frame) /* {{{ */ @@ -78,8 +76,6 @@ void phpdbg_switch_frame(int frame) /* {{{ */ /* backup things and jump back */ PHPDBG_FRAME(execute_data) = EG(current_execute_data); EG(current_execute_data) = execute_data; - - EG(scope) = PHPDBG_EX(func)->op_array.scope; } phpdbg_notice("frame", "id=\"%d\"", "Switched to frame #%d", frame); diff --git a/sapi/phpdbg/phpdbg_list.c b/sapi/phpdbg/phpdbg_list.c index 93d741c2a6..e31fe199f2 100644 --- a/sapi/phpdbg/phpdbg_list.c +++ b/sapi/phpdbg/phpdbg_list.c @@ -200,11 +200,12 @@ void phpdbg_list_function_byname(const char *str, size_t len) /* {{{ */ /* search active scope if begins with period */ if (func_name[0] == '.') { - if (EG(scope)) { + zend_class_entry *scope = zend_get_executed_scope(); + if (scope) { func_name++; func_name_len--; - func_table = &EG(scope)->function_table; + func_table = &scope->function_table; } else { phpdbg_error("inactive", "type=\"noclasses\"", "No active class"); return; @@ -242,6 +243,7 @@ zend_op_array *phpdbg_compile_file(zend_file_handle *file, int type) { char resolved_path_buf[MAXPATHLEN]; if (zend_stream_fixup(file, &bufptr, &data.len) == FAILURE) { + zend_file_handle_dtor(file); return NULL; } @@ -288,6 +290,8 @@ zend_op_array *phpdbg_compile_file(zend_file_handle *file, int type) { fake.opened_path = NULL; zend_file_handle_dtor(&fake); + zend_file_handle_dtor(file); + file->type = -1; return ret; } diff --git a/sapi/phpdbg/phpdbg_print.c b/sapi/phpdbg/phpdbg_print.c index 3725bf6083..034354a9e7 100644 --- a/sapi/phpdbg/phpdbg_print.c +++ b/sapi/phpdbg/phpdbg_print.c @@ -217,11 +217,13 @@ PHPDBG_PRINT(func) /* {{{ */ zend_string *lcname; /* search active scope if begins with period */ if (func_name[0] == '.') { - if (EG(scope)) { + zend_class_entry *scope = zend_get_executed_scope(); + + if (scope) { func_name++; func_name_len--; - func_table = &EG(scope)->function_table; + func_table = &scope->function_table; } else { phpdbg_error("inactive", "type=\"noclasses\"", "No active class"); return SUCCESS; diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index ac86c15629..3b7274a997 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -120,7 +120,6 @@ static inline int phpdbg_call_register(phpdbg_param_t *stack) /* {{{ */ ZVAL_STRINGL(&fci.function_name, lc_name, name->len); fci.size = sizeof(zend_fcall_info); - fci.function_table = &PHPDBG_G(registered); //???fci.symbol_table = zend_rebuild_symbol_table(); fci.object = NULL; fci.retval = &fretval; @@ -688,7 +687,7 @@ PHPDBG_COMMAND(run) /* {{{ */ } /* clean up from last execution */ - if (ex && ex->symbol_table) { + if (ex && (ZEND_CALL_INFO(ex) & ZEND_CALL_HAS_SYMBOL_TABLE)) { zend_hash_clean(ex->symbol_table); } else { zend_rebuild_symbol_table(); @@ -798,7 +797,6 @@ PHPDBG_COMMAND(ev) /* {{{ */ zval retval; zend_execute_data *original_execute_data = EG(current_execute_data); - zend_class_entry *original_scope = EG(scope); zend_vm_stack original_stack = EG(vm_stack); zend_object *ex = NULL; @@ -846,7 +844,6 @@ PHPDBG_COMMAND(ev) /* {{{ */ OBJ_RELEASE(ex); } EG(current_execute_data) = original_execute_data; - EG(scope) = original_scope; EG(vm_stack_top) = original_stack->top; EG(vm_stack_end) = original_stack->end; EG(vm_stack) = original_stack; diff --git a/sapi/phpdbg/phpdbg_watch.c b/sapi/phpdbg/phpdbg_watch.c index 2c324aa5dc..0224ff4fd1 100644 --- a/sapi/phpdbg/phpdbg_watch.c +++ b/sapi/phpdbg/phpdbg_watch.c @@ -680,7 +680,9 @@ static int phpdbg_watchpoint_parse_step(char *name, size_t namelen, char *key, s } static int phpdbg_watchpoint_parse_symtables(char *input, size_t len, int (*callback)(phpdbg_watchpoint_t *)) { - if (EG(scope) && len >= 5 && !memcmp("$this", input, 5)) { + zend_class_entry *scope = zend_get_executed_scope(); + + if (scope && len >= 5 && !memcmp("$this", input, 5)) { zend_hash_str_add(EG(current_execute_data)->symbol_table, ZEND_STRL("this"), &EG(current_execute_data)->This); } |
