From: Marcus Boerger Date: Fri, 24 Feb 2006 13:29:54 +0000 (+0000) Subject: - Add macros to mark functions/alias functions as deprecated X-Git-Tag: RELEASE_1_2~97 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a4c8e8d47cc0b87d3144e55253a1093e2351618;p=php - Add macros to mark functions/alias functions as deprecated (mentioned by Sara and obviously neccessary) - Fix function/method flag error detection logic --- diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 283edd4761..d429186459 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2060,7 +2060,9 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr } if (ptr->flags) { if (!(ptr->flags & ZEND_ACC_PPP_MASK)) { - zend_error(error_type, "Invalid access level for %s%s%s() - access must be exactly one of public, protected or private", scope ? scope->name.s : "", scope ? "::" : "", ptr->fname); + if (ptr->flags != ZEND_ACC_DEPRECATED || scope) { + zend_error(error_type, "Invalid access level for %s%s%s() - access must be exactly one of public, protected or private", scope ? scope->name.s : "", scope ? "::" : "", ptr->fname); + } internal_function->fn_flags = ZEND_ACC_PUBLIC | ptr->flags; } else { internal_function->fn_flags = ptr->flags; diff --git a/Zend/zend_API.h b/Zend/zend_API.h index c222696399..528e20b40e 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -50,7 +50,9 @@ typedef struct _zend_function_entry { #define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0) #define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0) +#define ZEND_DEP_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED) #define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0) +#define ZEND_DEP_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED) #define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_FN(classname##_##name), arg_info, flags) #define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT) #define ZEND_MALIAS(classname, name, alias, arg_info, flags) \