Ignore:
Timestamp:
Jul 6, 2020, 1:23:56 PM (4 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
6437ce4
Parents:
9ec8c5f
Message:

Default handlers for uncaught exceptions are now run at the top of the stack. There was an error but it seemed to disappear when I recompiled the code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/exception.c

    r9ec8c5f r381132b  
    8585        __cfadbg_print_safe(exception, "Throwing resumption exception\n");
    8686
    87         __attribute__((cleanup(reset_top_resume)))
    88         struct __cfaehm_try_resume_node * original_head = context->top_resume;
    89         struct __cfaehm_try_resume_node * current = context->top_resume;
    90 
    91         for ( ; current ; current = current->next) {
    92                 context->top_resume = current->next;
    93                 if (current->handler(except)) {
    94                         return;
     87        {
     88                __attribute__((cleanup(reset_top_resume)))
     89                struct __cfaehm_try_resume_node * original_head = context->top_resume;
     90                struct __cfaehm_try_resume_node * current = context->top_resume;
     91
     92                for ( ; current ; current = current->next) {
     93                        context->top_resume = current->next;
     94                        if (current->handler(except)) {
     95                                return;
     96                        }
    9597                }
    96         }
     98        } // End the search and return to the top of the stack.
    9799
    98100        // No handler found, fall back to the default operation.
Note: See TracChangeset for help on using the changeset viewer.