Skip to content

Commit 01e86d6

Browse files
committed
Extract code for declaring Exception/Error properties
1 parent 55dd394 commit 01e86d6

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

Zend/zend_exceptions.c

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,17 @@ ZEND_METHOD(Exception, __toString)
734734
}
735735
/* }}} */
736736

737+
static void declare_exception_properties(zend_class_entry *ce)
738+
{
739+
zend_declare_property_string(ce, "message", sizeof("message")-1, "", ZEND_ACC_PROTECTED);
740+
zend_declare_property_string(ce, "string", sizeof("string")-1, "", ZEND_ACC_PRIVATE);
741+
zend_declare_property_long(ce, "code", sizeof("code")-1, 0, ZEND_ACC_PROTECTED);
742+
zend_declare_property_null(ce, "file", sizeof("file")-1, ZEND_ACC_PROTECTED);
743+
zend_declare_property_null(ce, "line", sizeof("line")-1, ZEND_ACC_PROTECTED);
744+
zend_declare_property_null(ce, "trace", sizeof("trace")-1, ZEND_ACC_PRIVATE);
745+
zend_declare_property_null(ce, "previous", sizeof("previous")-1, ZEND_ACC_PRIVATE);
746+
}
747+
737748
void zend_register_default_exception(void) /* {{{ */
738749
{
739750
zend_class_entry ce;
@@ -748,14 +759,7 @@ void zend_register_default_exception(void) /* {{{ */
748759
zend_ce_exception = zend_register_internal_class_ex(&ce, NULL);
749760
zend_ce_exception->create_object = zend_default_exception_new;
750761
zend_class_implements(zend_ce_exception, 1, zend_ce_throwable);
751-
752-
zend_declare_property_string(zend_ce_exception, "message", sizeof("message")-1, "", ZEND_ACC_PROTECTED);
753-
zend_declare_property_string(zend_ce_exception, "string", sizeof("string")-1, "", ZEND_ACC_PRIVATE);
754-
zend_declare_property_long(zend_ce_exception, "code", sizeof("code")-1, 0, ZEND_ACC_PROTECTED);
755-
zend_declare_property_null(zend_ce_exception, "file", sizeof("file")-1, ZEND_ACC_PROTECTED);
756-
zend_declare_property_null(zend_ce_exception, "line", sizeof("line")-1, ZEND_ACC_PROTECTED);
757-
zend_declare_property_null(zend_ce_exception, "trace", sizeof("trace")-1, ZEND_ACC_PRIVATE);
758-
zend_declare_property_null(zend_ce_exception, "previous", sizeof("previous")-1, ZEND_ACC_PRIVATE);
762+
declare_exception_properties(zend_ce_exception);
759763

760764
INIT_CLASS_ENTRY(ce, "ErrorException", class_ErrorException_methods);
761765
zend_ce_error_exception = zend_register_internal_class_ex(&ce, zend_ce_exception);
@@ -766,14 +770,7 @@ void zend_register_default_exception(void) /* {{{ */
766770
zend_ce_error = zend_register_internal_class_ex(&ce, NULL);
767771
zend_ce_error->create_object = zend_default_exception_new;
768772
zend_class_implements(zend_ce_error, 1, zend_ce_throwable);
769-
770-
zend_declare_property_string(zend_ce_error, "message", sizeof("message")-1, "", ZEND_ACC_PROTECTED);
771-
zend_declare_property_string(zend_ce_error, "string", sizeof("string")-1, "", ZEND_ACC_PRIVATE);
772-
zend_declare_property_long(zend_ce_error, "code", sizeof("code")-1, 0, ZEND_ACC_PROTECTED);
773-
zend_declare_property_null(zend_ce_error, "file", sizeof("file")-1, ZEND_ACC_PROTECTED);
774-
zend_declare_property_null(zend_ce_error, "line", sizeof("line")-1, ZEND_ACC_PROTECTED);
775-
zend_declare_property_null(zend_ce_error, "trace", sizeof("trace")-1, ZEND_ACC_PRIVATE);
776-
zend_declare_property_null(zend_ce_error, "previous", sizeof("previous")-1, ZEND_ACC_PRIVATE);
773+
declare_exception_properties(zend_ce_error);
777774

778775
INIT_CLASS_ENTRY(ce, "CompileError", class_CompileError_methods);
779776
zend_ce_compile_error = zend_register_internal_class_ex(&ce, zend_ce_error);

0 commit comments

Comments
 (0)