]> granicus.if.org Git - php/commitdiff
- Add macros to mark functions/alias functions as deprecated
authorMarcus Boerger <helly@php.net>
Fri, 24 Feb 2006 13:29:54 +0000 (13:29 +0000)
committerMarcus Boerger <helly@php.net>
Fri, 24 Feb 2006 13:29:54 +0000 (13:29 +0000)
  (mentioned by Sara and obviously neccessary)
- Fix function/method flag error detection logic

Zend/zend_API.c
Zend/zend_API.h

index 283edd4761b80aa1fc6d6ea59b944c12c3969608..d4291864597f1f9a08630951886d342d18395c81 100644 (file)
@@ -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;
index c22269639934f0dfd5f126ae5ca76b42cfa19d1f..528e20b40e9621fe131c85a3b21a33fe709eb742 100644 (file)
@@ -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) \