From 8a4c8e8d47cc0b87d3144e55253a1093e2351618 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Fri, 24 Feb 2006 13:29:54 +0000 Subject: [PATCH] - Add macros to mark functions/alias functions as deprecated (mentioned by Sara and obviously neccessary) - Fix function/method flag error detection logic --- Zend/zend_API.c | 4 +++- Zend/zend_API.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 283edd4761b..d4291864597 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 c2226963993..528e20b40e9 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) \