diff options
| author | Guilherme Blanco <guilhermeblanco@hotmail.com> | 2015-02-12 23:19:14 +0100 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2015-02-12 23:20:19 +0100 |
| commit | 8c81d80e10e0f189307fc8ff4a8fb34bd0cb1fcb (patch) | |
| tree | 962ecf3dbea41b0d4d539a60498b6942304bd844 /Zend/zend_API.c | |
| parent | a0d472e1dad4a1cb719ba56a1ca4da19fadfdfb3 (diff) | |
| download | php-git-8c81d80e10e0f189307fc8ff4a8fb34bd0cb1fcb.tar.gz | |
Made ZEND_ACC_TRAIT a saner value
CC_TRAIT valued as 0x120 is too magical to be comprehensible by others.
Diffstat (limited to 'Zend/zend_API.c')
| -rw-r--r-- | Zend/zend_API.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index bd0f330a2f..fe6ae33802 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1090,11 +1090,14 @@ ZEND_API void object_properties_load(zend_object *object, HashTable *properties) * calling zend_merge_properties(). */ ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *class_type, HashTable *properties ZEND_FILE_LINE_DC) /* {{{ */ { - if (class_type->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { - char *what = (class_type->ce_flags & ZEND_ACC_INTERFACE) ? "interface" - :((class_type->ce_flags & ZEND_ACC_TRAIT) == ZEND_ACC_TRAIT) ? "trait" - : "abstract class"; - zend_error(E_ERROR, "Cannot instantiate %s %s", what, class_type->name->val); + if (class_type->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_TRAIT|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { + if (class_type->ce_flags & ZEND_ACC_INTERFACE) { + zend_error_noreturn(E_ERROR, "Cannot instantiate interface %s", class_type->name->val); + } else if (class_type->ce_flags & ZEND_ACC_TRAIT) { + zend_error_noreturn(E_ERROR, "Cannot instantiate trait %s", class_type->name->val); + } else { + zend_error_noreturn(E_ERROR, "Cannot instantiate abstract class %s", class_type->name->val); + } } zend_update_class_constants(class_type); |
