]> granicus.if.org Git - php/commitdiff
Extend zend_register_class_alias_ex() with additional argument to allow creating...
authorDmitry Stogov <dmitry@zend.com>
Fri, 27 Oct 2017 11:44:21 +0000 (14:44 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 27 Oct 2017 11:44:21 +0000 (14:44 +0300)
Zend/zend_API.c
Zend/zend_API.h
Zend/zend_builtin_functions.c

index fd1705149b96342c33f127f18bd5f2a6e5082950..61b1829f786c3b98c471787595a2417265e1e7bd 100644 (file)
@@ -2762,15 +2762,15 @@ ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry *or
 }
 /* }}} */
 
-ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce) /* {{{ */
+ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce, int persistent) /* {{{ */
 {
        zend_string *lcname;
 
        if (name[0] == '\\') {
-               lcname = zend_string_alloc(name_len-1, 1);
+               lcname = zend_string_alloc(name_len-1, persistent);
                zend_str_tolower_copy(ZSTR_VAL(lcname), name+1, name_len-1);
        } else {
-               lcname = zend_string_alloc(name_len, 1);
+               lcname = zend_string_alloc(name_len, persistent);
                zend_str_tolower_copy(ZSTR_VAL(lcname), name, name_len);
        }
 
index df9e136e4a95045c6edd89c7f85b1dd86fa4644a..4e9a27403543786318782e255a8ced60cd983d6c 100644 (file)
@@ -302,12 +302,12 @@ ZEND_API zend_class_entry *zend_register_internal_class_ex(zend_class_entry *cla
 ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry *orig_class_entry);
 ZEND_API void zend_class_implements(zend_class_entry *class_entry, int num_interfaces, ...);
 
-ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce);
+ZEND_API int zend_register_class_alias_ex(const char *name, size_t name_len, zend_class_entry *ce, int persistent);
 
-#define zend_register_class_alias(name, ce) \
-       zend_register_class_alias_ex(name, sizeof(name)-1, ce)
-#define zend_register_ns_class_alias(ns, name, ce) \
-       zend_register_class_alias_ex(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, ce)
+#define zend_register_class_alias(name, ce, persistent) \
+       zend_register_class_alias_ex(name, sizeof(name)-1, ce, persistent)
+#define zend_register_ns_class_alias(ns, name, ce, persistent) \
+       zend_register_class_alias_ex(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, ce, persistent)
 
 ZEND_API int zend_disable_function(char *function_name, size_t function_name_length);
 ZEND_API int zend_disable_class(char *class_name, size_t class_name_length);
index 387e9f5e600b54181ca5e7975e567a2be91f98f6..0d6cc442b6784b5e713c67d65ec1ed71909ac649 100644 (file)
@@ -1529,7 +1529,7 @@ ZEND_FUNCTION(class_alias)
 
        if (ce) {
                if (ce->type == ZEND_USER_CLASS) {
-                       if (zend_register_class_alias_ex(alias_name, alias_name_len, ce) == SUCCESS) {
+                       if (zend_register_class_alias_ex(alias_name, alias_name_len, ce, 0) == SUCCESS) {
                                RETURN_TRUE;
                        } else {
                                zend_error(E_WARNING, "Cannot declare %s %s, because the name is already in use", zend_get_object_type(ce), alias_name);