]> granicus.if.org Git - php/commitdiff
- If an exception is pending we don't bail out but show the unhandled exception
authorMarcus Boerger <helly@php.net>
Sat, 12 Mar 2005 22:42:37 +0000 (22:42 +0000)
committerMarcus Boerger <helly@php.net>
Sat, 12 Mar 2005 22:42:37 +0000 (22:42 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 0823420e3a66697680ffc0a634b76a276b4733c7..b84949e0496163d4a143f0cc7d9202c0f40027dc 100644 (file)
@@ -3254,6 +3254,9 @@ ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMP|VAR|UNUSED|CV, ANY)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (OP1_TYPE != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
index 89ca48fb57b6efaa2bde144f71972c60203c9032..dda89e9a4a1862cca4c16d6b54102dfbfe11d1ae 100644 (file)
@@ -2081,6 +2081,9 @@ static int ZEND_EXIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (IS_CONST != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
@@ -4540,6 +4543,9 @@ static int ZEND_EXIT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (IS_TMP_VAR != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
@@ -7752,6 +7758,9 @@ static int ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (IS_VAR != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
@@ -13291,6 +13300,9 @@ static int ZEND_EXIT_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (IS_UNUSED != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
@@ -18404,6 +18416,9 @@ static int ZEND_EXIT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (IS_CV != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;
@@ -30960,6 +30975,9 @@ static int ZEND_EXIT_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
 
+       if (EG(exception)) {
+               ZEND_VM_RETURN();
+       }
        if (opline->op1.op_type != IS_UNUSED) {
                zval *ptr;
                zend_free_op free_op1;