Changes in libcfa/src/exception.c [f1b6671:73530d9]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/exception.c
rf1b6671 r73530d9 10 10 // Created On : Mon Jun 26 15:13:00 2017 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Apr 06 14:40:00 202013 // Update Count : 1 512 // Last Modified On : Fri Apr 03 11:57:00 2020 13 // Update Count : 14 14 14 // 15 15 … … 75 75 // RESUMPTION ================================================================ 76 76 77 static void reset_top_resume(struct __cfaehm_try_resume_node ** store) {78 this_exception_context()->top_resume = *store;79 }80 81 77 void __cfaehm_throw_resume(exception_t * except) { 82 78 struct exception_context_t * context = this_exception_context(); … … 84 80 __cfaabi_dbg_print_safe("Throwing resumption exception\n"); 85 81 86 __attribute__((cleanup(reset_top_resume)))87 82 struct __cfaehm_try_resume_node * original_head = context->top_resume; 88 83 struct __cfaehm_try_resume_node * current = context->top_resume; … … 91 86 context->top_resume = current->next; 92 87 if (current->handler(except)) { 88 context->top_resume = original_head; 93 89 return; 94 90 } … … 96 92 97 93 __cfaabi_dbg_print_safe("Unhandled exception\n"); 94 context->top_resume = original_head; 98 95 99 96 // Fall back to termination:
Note: See TracChangeset
for help on using the changeset viewer.