}
/* }}} */
-ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, zval *callable_name) /* {{{ */
+ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, zval *callable_name TSRMLS_DC) /* {{{ */
{
- TSRMLS_FETCH();
-
return zend_is_callable_ex(callable, NULL, check_flags, callable_name, NULL, NULL TSRMLS_CC);
}
/* }}} */
#define IS_CALLABLE_STRICT (IS_CALLABLE_CHECK_IS_STATIC)
ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval **object_pp, uint check_flags, zval *callable_name, zend_fcall_info_cache *fcc, char **error TSRMLS_DC);
-ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, zval *callable_name);
+ZEND_API zend_bool zend_is_callable(zval *callable, uint check_flags, zval *callable_name TSRMLS_DC);
ZEND_API zend_bool zend_make_callable(zval *callable, zval *callable_name TSRMLS_DC);
ZEND_API const char *zend_get_module_version(const char *module_name);
ZEND_API int zend_get_module_started(char *module_name);
return;
}
- if (!zend_is_callable(error_handler, 0, &error_handler_name)) {
+ if (!zend_is_callable(error_handler, 0, &error_handler_name TSRMLS_CC)) {
zend_error(E_WARNING, "%v() expects the argument (%R) to be a valid callback",
get_active_function_name(TSRMLS_C), Z_TYPE(error_handler_name), Z_UNIVAL(error_handler_name));
zval_dtor(&error_handler_name);
}
if (Z_TYPE_P(exception_handler) != IS_NULL) { /* NULL == unset */
- if (!zend_is_callable(exception_handler, 0, &exception_handler_name)) {
+ if (!zend_is_callable(exception_handler, 0, &exception_handler_name TSRMLS_CC)) {
zend_error(E_WARNING, "%v() expects the argument (%R) to be a valid callback",
get_active_function_name(TSRMLS_C), Z_TYPE(exception_handler_name), Z_UNIVAL(exception_handler_name));
zval_dtor(&exception_handler_name);
zval ***args;
int status;
- if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_CHECK_NO_ACCESS, NULL)) {
+ if (!option_array || !zend_is_callable(option_array, IS_CALLABLE_CHECK_NO_ACCESS, NULL TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "First argument is expected to be a valid callback");
zval_dtor(value);
Z_TYPE_P(value) = IS_NULL;
}
/* get the callback */
- if (!zend_is_callable(*cb_arg, 0, NULL)) {
+ if (!zend_is_callable(*cb_arg, 0, NULL TSRMLS_CC)) {
_php_ibase_module_error("Callback argument %s is not a callable function"
TSRMLS_CC, Z_STRVAL_PP(cb_arg));
RETURN_FALSE;
INIT_ZVAL(callback);
ZVAL_STRING(&callback,name,0);
+ LOCK();
+
/* check if the requested function exists */
- if (!zend_is_callable(&callback, 0, NULL)) {
+ if (!zend_is_callable(&callback, 0, NULL TSRMLS_CC)) {
break;
}
+
+ UNLOCK();
/* create the argument array */
for (i = 0; i < argc; ++i) {
}
/* callable? */
- if (!zend_is_callable(callback, 0, &callback_name)) {
+ if (!zend_is_callable(callback, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Two arguments expected for '%R' to be a valid callback", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
RETURN_FALSE;
}
/* check callback function */
- if (!zend_is_callable(callback_func, 0, &callback_name)) {
+ if (!zend_is_callable(callback_func, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not a valid callback function %R", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
RETURN_FALSE;
RETURN_TRUE;
}
- if (!zend_is_callable(handle, 0, &func_name)) {
+ if (!zend_is_callable(handle, 0, &func_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%R is not a callable function name error", Z_TYPE(func_name), Z_UNIVAL(func_name));
zval_dtor(&func_name);
RETURN_FALSE;
if (Z_TYPE_P(replace) != IS_ARRAY && Z_TYPE_P(replace) != IS_OBJECT) {
convert_to_text(replace);
}
- if (!zend_is_callable(replace, 0, &callback_name)) {
+ if (!zend_is_callable(replace, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires argument 2, '%R', to be a valid callback", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
*return_value = *subject;
method = &callable;
}
- if (!method || !zend_is_callable(callable, 0, NULL)) {
+ if (!method || !zend_is_callable(callable, 0, NULL TSRMLS_CC)) {
pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "user-supplied function must be a valid callback" TSRMLS_CC);
return 0;
}
dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
PDO_CONSTRUCT_CHECK;
- if (!zend_is_callable(callback, 0, NULL)) {
+ if (!zend_is_callable(callback, 0, NULL TSRMLS_CC)) {
pdo_sqlite_errmsg(dbh, NULL, "callback is not callable");
RETURN_FALSE;
}
dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
PDO_CONSTRUCT_CHECK;
- if (!zend_is_callable(step_callback, 0, NULL)) {
+ if (!zend_is_callable(step_callback, 0, NULL TSRMLS_CC)) {
pdo_sqlite_errmsg(dbh, NULL, "step callback is not callable");
RETURN_FALSE;
}
- if (!zend_is_callable(fini_callback, 0, NULL)) {
+ if (!zend_is_callable(fini_callback, 0, NULL TSRMLS_CC)) {
pdo_sqlite_errmsg(dbh, NULL, "fini callback is not callable");
RETURN_FALSE;
}
RETURN_FALSE;
}
- if (!zend_is_callable(arg, 0, &name)) {
+ if (!zend_is_callable(arg, 0, &name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%R is not callable", Z_TYPE(name), Z_UNIVAL(name));
zval_dtor(&name);
RETURN_FALSE;
return;
}
- if (!zend_is_callable(callback, 0, &name)) {
+ if (!zend_is_callable(callback, 0, &name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%R is not callable", Z_TYPE(name), Z_UNIVAL(name));
zval_dtor(&name);
RETURN_FALSE;
for (i = 0; i < 6; i++) {
- if (!zend_is_callable(*args[i], 0, &name)) {
+ if (!zend_is_callable(*args[i], 0, &name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Argument %d is not a valid callback", i+1);
zval_dtor(&name);
RETURN_FALSE;
intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
ZVAL_TEXT(&func, method, 0);
- if (!zend_is_callable(&func, 0, &method)) {
+ if (!zend_is_callable(&func, 0, &method TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Method %v::%R() does not exist", intern->inner.ce->name, Z_TYPE(method), Z_UNIVAL(method));
return FAILURE;
}
DB_FROM_ZVAL(db, &zdb);
}
- if (!zend_is_callable(zstep, 0, &callable)) {
+ if (!zend_is_callable(zstep, 0, &callable TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "step function `%R' is not callable", Z_TYPE(callable), Z_UNIVAL(callable));
zval_dtor(&callable);
return;
}
zval_dtor(&callable);
- if (!zend_is_callable(zfinal, 0, &callable)) {
+ if (!zend_is_callable(zfinal, 0, &callable TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "finalize function `%R' is not callable", Z_TYPE(callable), Z_UNIVAL(callable));
zval_dtor(&callable);
return;
DB_FROM_ZVAL(db, &zdb);
}
- if (!zend_is_callable(zcall, 0, &callable)) {
+ if (!zend_is_callable(zcall, 0, &callable TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "function `%R' is not callable", Z_TYPE(callable), Z_UNIVAL(callable));
zval_dtor(&callable);
return;
RETURN_FALSE;
}
- if (!zend_is_callable(callback_func, 0, &callback_name)) {
+ if (!zend_is_callable(callback_func, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not a valid callback function %R", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
RETURN_FALSE;
RETURN_FALSE;
}
- if (!zend_is_callable(step_callback, 0, &callback_name)) {
+ if (!zend_is_callable(step_callback, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not a valid callback function %R", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
RETURN_FALSE;
}
zval_dtor(&callback_name);
- if (!zend_is_callable(fini_callback, 0, &callback_name)) {
+ if (!zend_is_callable(fini_callback, 0, &callback_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not a valid callback function %R", Z_TYPE(callback_name), Z_UNIVAL(callback_name));
zval_dtor(&callback_name);
RETURN_FALSE;
/* check if comparison function is valid */
#define PHP_ARRAY_CMP_FUNC_CHECK(func_name) \
- if (!zend_is_callable(*func_name, 0, NULL)) { \
+ if (!zend_is_callable(*func_name, 0, NULL TSRMLS_CC)) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid comparison function"); \
BG(user_compare_fci) = old_user_compare_fci; \
BG(user_compare_fci_cache) = old_user_compare_fci_cache; \
zval retval;
zval function_name;
- if (!zend_is_callable(shutdown_function_entry->arguments[0], 0, &function_name)) {
+ if (!zend_is_callable(shutdown_function_entry->arguments[0], 0, &function_name TSRMLS_CC)) {
php_error(E_WARNING, "(Registered shutdown functions) Unable to call %R() - function does not exist", Z_TYPE(function_name), Z_UNIVAL(function_name));
zval_dtor(&function_name);
return 0;
}
/* Prevent entering of anything but valid callback (syntax check only!) */
- if (!zend_is_callable(shutdown_function_entry.arguments[0], 0, &function_name)) {
+ if (!zend_is_callable(shutdown_function_entry.arguments[0], 0, &function_name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid shutdown callback '%R' passed", Z_TYPE(function_name), Z_UNIVAL(function_name));
efree(shutdown_function_entry.arguments);
RETVAL_FALSE;
syntax_only = syntax_only ? IS_CALLABLE_CHECK_SYNTAX_ONLY : 0;
if (ZEND_NUM_ARGS() > 2) {
- retval = zend_is_callable(var, syntax_only, &name);
+ retval = zend_is_callable(var, syntax_only, &name TSRMLS_CC);
REPLACE_ZVAL_VALUE(callable_name, &name, 0);
} else {
- retval = zend_is_callable(var, syntax_only, NULL);
+ retval = zend_is_callable(var, syntax_only, NULL TSRMLS_CC);
}
RETURN_BOOL(retval);
case IS_ARRAY:
case IS_STRING:
/* Either "function", array("class", "function") or array($object, "function") */
- if (!zend_is_callable(*param, 0, &name)) {
+ if (!zend_is_callable(*param, 0, &name TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "First argumented is expected to be a valid callback, '%R' was given", Z_TYPE(name), Z_UNIVAL(name));
zval_dtor(&name);
RETURN_FALSE;
return;
}
- if (!zend_is_callable(callback, 0, NULL)) {
+ if (!zend_is_callable(callback, 0, NULL TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid enumeration callback");
return;
}
return;
}
- if (!zend_is_callable(callback, 0, NULL)) {
+ if (!zend_is_callable(callback, 0, NULL TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid enumeration callback");
return;
}
}
if (Z_TYPE_P(error_handler) != IS_NULL) { /* NULL == unset */
- if (!zend_is_callable(error_handler, 0, &error_handler_name)) {
+ if (!zend_is_callable(error_handler, 0, &error_handler_name TSRMLS_CC)) {
zend_error(E_WARNING, "%v() expects the argument (%R) to be a valid callback",
get_active_function_name(TSRMLS_C), Z_TYPE(error_handler_name), Z_UNIVAL(error_handler_name));
zval_dtor(&error_handler_name);
zend_hash_internal_pointer_reset(Z_ARRVAL_P(pData->server->introspection_map));
while(1) {
if(zend_hash_get_current_data(Z_ARRVAL_P(pData->server->introspection_map), (void**)&php_function) == SUCCESS) {
- if (zend_is_callable(*php_function, 0, &php_function_name)) {
+ if (zend_is_callable(*php_function, 0, &php_function_name TSRMLS_CC)) {
/* php func prototype: function string user_func($user_params) */
if (call_user_function(CG(function_table), NULL, *php_function, &retval, 1, callback_params TSRMLS_CC) == SUCCESS) {
XMLRPC_VALUE xData;