]> granicus.if.org Git - php/commitdiff
Make those final (see comment)
authorMarcus Boerger <helly@php.net>
Sat, 30 Aug 2003 11:33:41 +0000 (11:33 +0000)
committerMarcus Boerger <helly@php.net>
Sat, 30 Aug 2003 11:33:41 +0000 (11:33 +0000)
Zend/zend_default_classes.c
Zend/zend_exceptions.c

index 2e2ebaee96ca38efc5137c5951bd6405eafdc1ba..5c51ca142005a243102a03e5661ff86379a54739 100644 (file)
@@ -122,13 +122,17 @@ ZEND_METHOD(exception, gettrace)
        _default_exception_get_entry(getThis(), "trace", sizeof("trace")-1, return_value TSRMLS_CC);
 }
 
+/* All functions that may be used in uncaught exception handlers must be final
+ * and must not throw exceptions. Otherwise we would need a facility to handle
+ * such exceptions in that handler.
+ */
 static zend_function_entry default_exception_functions[] = {
        ZEND_ME(exception, __construct, NULL, 0)
-       ZEND_ME(exception, getmessage, NULL, 0)
-       ZEND_ME(exception, getcode, NULL, 0)
-       ZEND_ME(exception, getfile, NULL, 0)
-       ZEND_ME(exception, getline, NULL, 0)
-       ZEND_ME(exception, gettrace, NULL, 0)
+       ZEND_ME(exception, getmessage, NULL, 0) /* non final for now */
+       ZEND_ME(exception, getcode, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, getfile, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, getline, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, gettrace, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
        {NULL, NULL, NULL}
 };
 
index 2e2ebaee96ca38efc5137c5951bd6405eafdc1ba..5c51ca142005a243102a03e5661ff86379a54739 100644 (file)
@@ -122,13 +122,17 @@ ZEND_METHOD(exception, gettrace)
        _default_exception_get_entry(getThis(), "trace", sizeof("trace")-1, return_value TSRMLS_CC);
 }
 
+/* All functions that may be used in uncaught exception handlers must be final
+ * and must not throw exceptions. Otherwise we would need a facility to handle
+ * such exceptions in that handler.
+ */
 static zend_function_entry default_exception_functions[] = {
        ZEND_ME(exception, __construct, NULL, 0)
-       ZEND_ME(exception, getmessage, NULL, 0)
-       ZEND_ME(exception, getcode, NULL, 0)
-       ZEND_ME(exception, getfile, NULL, 0)
-       ZEND_ME(exception, getline, NULL, 0)
-       ZEND_ME(exception, gettrace, NULL, 0)
+       ZEND_ME(exception, getmessage, NULL, 0) /* non final for now */
+       ZEND_ME(exception, getcode, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, getfile, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, getline, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
+       ZEND_ME(exception, gettrace, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
        {NULL, NULL, NULL}
 };