summaryrefslogtreecommitdiff
path: root/ext/readline
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-08-22 12:22:16 +0000
committerDmitry Stogov <dmitry@php.net>2005-08-22 12:22:16 +0000
commit6b622046dc25b161706dbb25f6416a4f3ddf55ec (patch)
tree134be93d8d80ed516f2587cab1224115083676db /ext/readline
parent6fad26469c9b0f539c51514d9a125ec34fc67ad8 (diff)
downloadphp-git-6b622046dc25b161706dbb25f6416a4f3ddf55ec.tar.gz
zend_is_callable() and zend_make_callable() were changed to return readable function name as zval (instead of string).
Diffstat (limited to 'ext/readline')
-rw-r--r--ext/readline/readline.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/readline/readline.c b/ext/readline/readline.c
index f86fdfcd07..8dbfb46157 100644
--- a/ext/readline/readline.c
+++ b/ext/readline/readline.c
@@ -441,16 +441,18 @@ static char **_readline_completion_cb(const char *text, int start, int end)
PHP_FUNCTION(readline_completion_function)
{
zval *arg = NULL;
- char *name = NULL;
+ zval name;
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &arg)) {
RETURN_FALSE;
}
if (!zend_is_callable(arg, 0, &name)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s is not callable", name);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%R is not callable", Z_TYPE(name), Z_UNIVAL(name));
+ zval_dtor(&name);
RETURN_FALSE;
}
+ zval_dtor(&name);
if (_readline_completion)
FREE_ZVAL(_readline_completion);
@@ -489,7 +491,7 @@ static void php_rl_callback_handler(char *the_line)
PHP_FUNCTION(readline_callback_handler_install)
{
zval *callback;
- char *name = NULL;
+ zval name;
char *prompt;
int prompt_len;
@@ -498,9 +500,11 @@ PHP_FUNCTION(readline_callback_handler_install)
}
if (!zend_is_callable(callback, 0, &name)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s is not callable", name);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%R is not callable", Z_TYPE(name), Z_UNIVAL(name));
+ zval_dtor(&name);
RETURN_FALSE;
}
+ zval_dtor(&name);
if (_prepped_callback) {
rl_callback_handler_remove();