From a653240bd7b44aa52df34bcb3bb4e8eee79dc3b8 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 2 Oct 2019 10:54:47 +0200 Subject: [PATCH] Prune opcache func info Remove opcache func info for some functions which have arg info with same or better accuracy (this is incomplete, we can drop more). --- ext/opcache/Optimizer/zend_func_info.c | 143 ------------------------- 1 file changed, 143 deletions(-) diff --git a/ext/opcache/Optimizer/zend_func_info.c b/ext/opcache/Optimizer/zend_func_info.c index 4c7a439e7ac..eecf6335a31 100644 --- a/ext/opcache/Optimizer/zend_func_info.c +++ b/ext/opcache/Optimizer/zend_func_info.c @@ -89,40 +89,18 @@ static uint32_t zend_range_info(const zend_call_info *call_info, const zend_ssa static const func_info_t func_infos[] = { /* zend */ F1("zend_version", MAY_BE_STRING), - F0("gc_collect_cycles", MAY_BE_LONG), - F0("gc_enabled", MAY_BE_FALSE | MAY_BE_TRUE), - F0("gc_enable", MAY_BE_NULL), - F0("gc_disable", MAY_BE_NULL), - F0("func_num_args", MAY_BE_LONG), FN("func_get_arg", UNKNOWN_INFO), F1("func_get_args", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_ANY), - F0("strlen", MAY_BE_LONG), - F0("strcmp", MAY_BE_LONG), F0("strncmp", MAY_BE_FALSE | MAY_BE_LONG), - F0("strcasecmp", MAY_BE_LONG), F0("strncasecmp", MAY_BE_FALSE | MAY_BE_LONG), - F0("error_reporting", MAY_BE_LONG), - F0("define", MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_NULL), // TODO: inline - F0("defined", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline FN("get_class", MAY_BE_FALSE | MAY_BE_STRING), FN("get_called_class", MAY_BE_FALSE | MAY_BE_STRING), FN("get_parent_class", MAY_BE_FALSE | MAY_BE_STRING), - F0("is_subclass_of", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline - F0("is_a", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline F1("get_class_vars", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF), FN("get_object_vars", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF), FN("get_mangled_object_vars", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF), F1("get_class_methods", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), - F0("method_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("property_exists", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("class_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("interface_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("trait_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("function_exists", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline - F0("class_alias", MAY_BE_FALSE | MAY_BE_TRUE), F1("get_included_files", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), - F0("trigger_error", MAY_BE_FALSE | MAY_BE_TRUE), - F0("user_error", MAY_BE_FALSE | MAY_BE_TRUE), FN("set_error_handler", MAY_BE_NULL | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_OBJECT | MAY_BE_OBJECT), F0("restore_error_handler", MAY_BE_TRUE), F0("restore_exception_handler", MAY_BE_TRUE), @@ -133,10 +111,8 @@ static const func_info_t func_infos[] = { F1("get_defined_vars", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF), F1("get_resource_type", MAY_BE_STRING), F1("get_defined_constants", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_NULL | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_DOUBLE | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_RESOURCE | MAY_BE_ARRAY_OF_ARRAY), - F0("debug_print_backtrace", MAY_BE_NULL), F1("debug_backtrace", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_ARRAY), F1("get_loaded_extensions", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), - F0("extension_loaded", MAY_BE_FALSE | MAY_BE_TRUE), F1("get_extension_funcs", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), /* ext/standard */ @@ -163,7 +139,6 @@ static const func_info_t func_infos[] = { F1("sha1_file", MAY_BE_FALSE | MAY_BE_STRING), F1("md5", MAY_BE_STRING), F1("md5_file", MAY_BE_FALSE | MAY_BE_STRING), - F0("crc32", MAY_BE_LONG), F1("iptcparse", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ARRAY), F1("iptcembed", MAY_BE_FALSE | MAY_BE_STRING), F1("getimagesize", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING), @@ -177,8 +152,6 @@ static const func_info_t func_infos[] = { F1("php_uname", MAY_BE_STRING), F1("php_ini_scanned_files", MAY_BE_FALSE | MAY_BE_STRING), F1("php_ini_loaded_file", MAY_BE_FALSE | MAY_BE_STRING), - F0("strnatcmp", MAY_BE_LONG), - F0("strnatcasecmp", MAY_BE_LONG), F0("substr_count", MAY_BE_FALSE | MAY_BE_LONG), F0("strspn", MAY_BE_FALSE | MAY_BE_LONG), F0("strcspn", MAY_BE_FALSE | MAY_BE_LONG), @@ -206,7 +179,6 @@ static const func_info_t func_infos[] = { F1("str_split", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), F1("strpbrk", MAY_BE_FALSE | MAY_BE_STRING), F0("substr_compare", MAY_BE_FALSE | MAY_BE_LONG), - F0("strcoll", MAY_BE_LONG), #ifdef HAVE_STRFMON F1("money_format", MAY_BE_FALSE | MAY_BE_STRING), #endif @@ -229,7 +201,6 @@ static const func_info_t func_infos[] = { FN("trim", MAY_BE_STRING), FN("ltrim", MAY_BE_STRING), F1("strip_tags", MAY_BE_STRING), - F0("similar_text", MAY_BE_LONG), F1("explode", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), FN("implode", MAY_BE_STRING), FN("join", MAY_BE_STRING), @@ -241,8 +212,6 @@ static const func_info_t func_infos[] = { F1("soundex", MAY_BE_FALSE | MAY_BE_STRING), F0("levenshtein", MAY_BE_LONG), F1("chr", MAY_BE_STRING), - F0("ord", MAY_BE_LONG), - F0("parse_str", MAY_BE_NULL), F1("str_getcsv", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_NULL | MAY_BE_ARRAY_OF_STRING), F1("str_pad", MAY_BE_NULL | MAY_BE_STRING), F1("strchr", MAY_BE_FALSE | MAY_BE_STRING), @@ -306,7 +275,6 @@ static const func_info_t func_infos[] = { F0("getmygid", MAY_BE_FALSE | MAY_BE_LONG), F0("getmypid", MAY_BE_FALSE | MAY_BE_LONG), F0("getmyinode", MAY_BE_FALSE | MAY_BE_LONG), - F0("getlastmod", MAY_BE_FALSE | MAY_BE_LONG), F1("base64_decode", MAY_BE_FALSE | MAY_BE_STRING), F1("base64_encode", MAY_BE_STRING), F1("password_hash", MAY_BE_NULL | MAY_BE_STRING), @@ -319,25 +287,8 @@ static const func_info_t func_infos[] = { F0("ceil", MAY_BE_DOUBLE), F0("floor", MAY_BE_DOUBLE), F0("round", MAY_BE_FALSE | MAY_BE_DOUBLE), - F0("sin", MAY_BE_DOUBLE), - F0("cos", MAY_BE_DOUBLE), - F0("tan", MAY_BE_DOUBLE), - F0("asin", MAY_BE_DOUBLE), - F0("acos", MAY_BE_DOUBLE), - F0("atan", MAY_BE_DOUBLE), - F0("atanh", MAY_BE_DOUBLE), - F0("atan2", MAY_BE_DOUBLE), - F0("sinh", MAY_BE_DOUBLE), - F0("cosh", MAY_BE_DOUBLE), - F0("tanh", MAY_BE_DOUBLE), - F0("asinh", MAY_BE_DOUBLE), - F0("acosh", MAY_BE_DOUBLE), F0("expm1", MAY_BE_DOUBLE), F0("log1p", MAY_BE_DOUBLE), - F0("pi", MAY_BE_DOUBLE), - F0("is_finite", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_nan", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_infinite", MAY_BE_FALSE | MAY_BE_TRUE), F1("pow", MAY_BE_NULL | MAY_BE_LONG | MAY_BE_DOUBLE | MAY_BE_OBJECT), F0("exp", MAY_BE_DOUBLE), F0("log", MAY_BE_FALSE | MAY_BE_DOUBLE), @@ -385,11 +336,7 @@ static const func_info_t func_infos[] = { F1("quoted_printable_encode", MAY_BE_STRING), F1("convert_cyr_string", MAY_BE_STRING), F1("get_current_user", MAY_BE_STRING), - F0("set_time_limit", MAY_BE_FALSE | MAY_BE_TRUE), - F0("header_register_callback", MAY_BE_FALSE | MAY_BE_TRUE), F1("get_cfg_var", MAY_BE_FALSE | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY), - F0("magic_quotes_runtime", MAY_BE_FALSE), - F0("set_magic_quotes_runtime", MAY_BE_FALSE), F0("get_magic_quotes_gpc", MAY_BE_FALSE), F0("get_magic_quotes_runtime", MAY_BE_FALSE), F0("error_log", MAY_BE_FALSE | MAY_BE_TRUE), @@ -423,11 +370,6 @@ static const func_info_t func_infos[] = { F1("get_include_path", MAY_BE_FALSE | MAY_BE_STRING), F1("set_include_path", MAY_BE_FALSE | MAY_BE_STRING), F0("restore_include_path", MAY_BE_NULL), - F0("setcookie", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("setrawcookie", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("header", MAY_BE_NULL), - F0("header_remove", MAY_BE_NULL), - F0("headers_sent", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), F1("headers_list", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), F0("http_response_code", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), F0("connection_aborted", MAY_BE_LONG), @@ -438,7 +380,6 @@ static const func_info_t func_infos[] = { #if ZEND_DEBUG F1("config_get_hash", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY), #endif - F0("is_uploaded_file", MAY_BE_FALSE | MAY_BE_TRUE), F0("move_uploaded_file", MAY_BE_FALSE | MAY_BE_TRUE), F1("gethostbyaddr", MAY_BE_FALSE | MAY_BE_STRING), F1("gethostbyname", MAY_BE_STRING), @@ -462,23 +403,6 @@ static const func_info_t func_infos[] = { F0("boolval", MAY_BE_FALSE | MAY_BE_TRUE), FN("gettype", MAY_BE_STRING), F0("settype", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_null", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_resource", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline with support for closed resources - F0("is_bool", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_long", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_float", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_int", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_integer", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_double", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_real", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_numeric", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_string", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_array", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_object", MAY_BE_FALSE | MAY_BE_TRUE), // TODO: inline with support for incomplete class - F0("is_scalar", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_callable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_countable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_iterable", MAY_BE_FALSE | MAY_BE_TRUE), F0("pclose", MAY_BE_FALSE | MAY_BE_LONG), F1("popen", MAY_BE_FALSE | MAY_BE_RESOURCE), F0("readfile", MAY_BE_FALSE | MAY_BE_LONG), @@ -546,10 +470,6 @@ static const func_info_t func_infos[] = { F0("socket_set_blocking", MAY_BE_FALSE | MAY_BE_TRUE), F1("stream_get_meta_data", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_ANY), F1("stream_get_line", MAY_BE_FALSE | MAY_BE_STRING), - F0("stream_wrapper_register", MAY_BE_FALSE | MAY_BE_TRUE), - F0("stream_register_wrapper", MAY_BE_FALSE | MAY_BE_TRUE), - F0("stream_wrapper_unregister", MAY_BE_FALSE | MAY_BE_TRUE), - F0("stream_wrapper_restore", MAY_BE_FALSE | MAY_BE_TRUE), F1("stream_get_wrappers", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), F1("stream_get_transports", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), F1("stream_resolve_include_path", MAY_BE_FALSE | MAY_BE_STRING), @@ -596,13 +516,6 @@ static const func_info_t func_infos[] = { F0("filesize", MAY_BE_FALSE | MAY_BE_LONG), F1("filetype", MAY_BE_FALSE | MAY_BE_STRING), F0("file_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_writable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_writeable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_readable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_executable", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_file", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_dir", MAY_BE_FALSE | MAY_BE_TRUE), - F0("is_link", MAY_BE_FALSE | MAY_BE_TRUE), F1("stat", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING), F1("lstat", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_FALSE | MAY_BE_ARRAY_OF_TRUE | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING), F0("chown", MAY_BE_FALSE | MAY_BE_TRUE), @@ -626,40 +539,15 @@ static const func_info_t func_infos[] = { F0("mail", MAY_BE_FALSE | MAY_BE_TRUE), F0("ezmlm_hash", MAY_BE_LONG), #ifdef HAVE_SYSLOG_H - F0("openlog", MAY_BE_FALSE | MAY_BE_TRUE), - F0("syslog", MAY_BE_FALSE | MAY_BE_TRUE), F0("closelog", MAY_BE_TRUE), #endif - F0("lcg_value", MAY_BE_DOUBLE), F1("metaphone", MAY_BE_FALSE | MAY_BE_STRING), - F0("ob_start", MAY_BE_FALSE | MAY_BE_TRUE), - F0("ob_flush", MAY_BE_FALSE | MAY_BE_TRUE), - F0("ob_clean", MAY_BE_FALSE | MAY_BE_TRUE), - F0("ob_end_flush", MAY_BE_FALSE | MAY_BE_TRUE), - F0("ob_end_clean", MAY_BE_FALSE | MAY_BE_TRUE), F1("ob_get_flush", MAY_BE_FALSE | MAY_BE_STRING), F1("ob_get_clean", MAY_BE_FALSE | MAY_BE_STRING), F0("ob_get_length", MAY_BE_FALSE | MAY_BE_LONG), - F0("ob_get_level", MAY_BE_LONG), F1("ob_get_status", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY), FN("ob_get_contents", MAY_BE_FALSE | MAY_BE_STRING), - F0("ob_implicit_flush", MAY_BE_NULL), F1("ob_list_handlers", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), - F0("ksort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("krsort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("natsort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("natcasesort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("asort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("arsort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("sort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("rsort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("usort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("uasort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("uksort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("shuffle", MAY_BE_FALSE | MAY_BE_TRUE), - F0("array_walk", MAY_BE_FALSE | MAY_BE_TRUE), - F0("array_walk_recursive", MAY_BE_FALSE | MAY_BE_TRUE), - F0("count", MAY_BE_LONG), FN("end", UNKNOWN_INFO), FN("prev", UNKNOWN_INFO), FN("next", UNKNOWN_INFO), @@ -668,18 +556,13 @@ static const func_info_t func_infos[] = { FN("key", MAY_BE_NULL | MAY_BE_LONG | MAY_BE_STRING), FN("min", UNKNOWN_INFO), FN("max", UNKNOWN_INFO), - F0("in_array", MAY_BE_FALSE | MAY_BE_TRUE), FN("array_search", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_STRING), - F0("extract", MAY_BE_NULL | MAY_BE_LONG), F1("compact", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), F1("array_fill", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_ANY), F1("array_fill_keys", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), FC("range", zend_range_info), - F0("array_multisort", MAY_BE_FALSE | MAY_BE_TRUE), - F0("array_push", MAY_BE_FALSE | MAY_BE_LONG), FN("array_pop", UNKNOWN_INFO), FN("array_shift", UNKNOWN_INFO), - F0("array_unshift", MAY_BE_LONG), F1("array_splice", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), F1("array_slice", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), FN("array_merge", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), @@ -719,18 +602,11 @@ static const func_info_t func_infos[] = { FN("array_map", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), F1("array_chunk", MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), F1("array_combine", MAY_BE_FALSE | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_REF | MAY_BE_ARRAY_OF_ANY), - F0("array_key_exists", MAY_BE_FALSE | MAY_BE_TRUE), FN("array_key_first", MAY_BE_NULL | MAY_BE_LONG | MAY_BE_STRING), FN("array_key_last", MAY_BE_NULL | MAY_BE_LONG | MAY_BE_STRING), F1("pos", UNKNOWN_INFO), - F0("sizeof", MAY_BE_LONG), - F0("key_exists", MAY_BE_FALSE | MAY_BE_TRUE), - F0("assert", MAY_BE_FALSE | MAY_BE_TRUE), F1("assert_options", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_STRING | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_OBJECT | MAY_BE_OBJECT), F0("version_compare", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE | MAY_BE_LONG), -#if HAVE_FTOK - F0("ftok", MAY_BE_LONG), -#endif F1("str_rot13", MAY_BE_STRING), F1("stream_get_filters", MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_OF_STRING), F0("stream_filter_register", MAY_BE_FALSE | MAY_BE_TRUE), @@ -738,7 +614,6 @@ static const func_info_t func_infos[] = { F1("stream_bucket_prepend", MAY_BE_FALSE | MAY_BE_OBJECT), F1("stream_bucket_append", MAY_BE_FALSE | MAY_BE_OBJECT), F1("stream_bucket_new", MAY_BE_FALSE | MAY_BE_OBJECT), - F0("output_add_rewrite_var", MAY_BE_FALSE | MAY_BE_TRUE), F0("output_reset_rewrite_vars", MAY_BE_FALSE), F1("sys_get_temp_dir", MAY_BE_STRING), @@ -1014,25 +889,7 @@ static const func_info_t func_infos[] = { /* ext/xml */ FN("xml_parser_create", MAY_BE_FALSE | MAY_BE_OBJECT), FN("xml_parser_create_ns", MAY_BE_FALSE | MAY_BE_OBJECT), - F0("xml_set_object", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_element_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_character_data_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_processing_instruction_handler",MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_default_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_unparsed_entity_decl_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_notation_decl_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_external_entity_ref_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_start_namespace_decl_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_set_end_namespace_decl_handler", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_parse", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), - F0("xml_parse_into_struct", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), - F0("xml_get_error_code", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), F1("xml_error_string", MAY_BE_NULL | MAY_BE_STRING), - F0("xml_get_current_line_number", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), - F0("xml_get_current_column_number", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), - F0("xml_get_current_byte_index", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG), - F0("xml_parser_free", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), - F0("xml_parser_set_option", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_TRUE), F1("xml_parser_get_option", MAY_BE_NULL | MAY_BE_FALSE | MAY_BE_LONG | MAY_BE_STRING), F1("utf8_encode", MAY_BE_STRING), F1("utf8_decode", MAY_BE_STRING),