Changeset 5456537


Ignore:
Timestamp:
Apr 26, 2021, 10:21:09 AM (3 years ago)
Author:
Andrew Beach <ajbeach@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
8840228, df24d37
Parents:
aec68b6
Message:

A bit of clean-up, wrapping the detail of the default vtable up in a macro.

Location:
libcfa/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/coroutine.cfa

    raec68b6 r5456537  
    6161forall(T & | is_coroutine(T))
    6262void __cfaehm_cancelled_coroutine(
    63                 T & cor, $coroutine * desc, _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable ) {
     63                T & cor, $coroutine * desc, EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)) ) {
    6464        verify( desc->cancellation );
    6565        desc->state = Cancelled;
     
    145145// Part of the Public API
    146146// Not inline since only ever called once per coroutine
    147 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })
     147forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); })
    148148void prime(T& cor) {
    149149        $coroutine* this = get_coroutine(cor);
  • libcfa/src/concurrency/coroutine.hfa

    raec68b6 r5456537  
    6060//-----------------------------------------------------------------------------
    6161// Public coroutine API
    62 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })
     62forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); })
    6363void prime(T & cor);
    6464
     
    131131forall(T & | is_coroutine(T))
    132132void __cfaehm_cancelled_coroutine(
    133         T & cor, $coroutine * desc, _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable );
     133        T & cor, $coroutine * desc, EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)) );
    134134
    135135// Resume implementation inlined for performance
    136 forall(T & | is_coroutine(T) | { _EHM_VTABLE_TYPE(CoroutineCancelled)(T) & const _default_vtable; })
     136forall(T & | is_coroutine(T) | { EHM_DEFAULT_VTABLE(CoroutineCancelled, (T)); })
    137137static inline T & resume(T & cor) {
    138138        // optimization : read TLS once and reuse it
  • libcfa/src/concurrency/thread.cfa

    raec68b6 r5456537  
    8080
    8181forall(T & | is_thread(T) | IS_EXCEPTION(ThreadCancelled, (T))
    82     | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })
     82    | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); })
    8383void ?{}( thread_dtor_guard_t & this,
    8484                T & thrd, void(*cancelHandler)(ThreadCancelled(T) &)) {
     
    159159//-----------------------------------------------------------------------------
    160160forall(T & | is_thread(T) | IS_RESUMPTION_EXCEPTION(ThreadCancelled, (T))
    161     | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; })
     161    | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); })
    162162T & join( T & this ) {
    163163        thread_dtor_guard_t guard = { this, defaultResumptionHandler };
  • libcfa/src/concurrency/thread.hfa

    raec68b6 r5456537  
    8080
    8181forall( T & | is_thread(T) | IS_EXCEPTION(ThreadCancelled, (T))
    82     | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; } )
     82    | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); })
    8383void ?{}( thread_dtor_guard_t & this, T & thrd, void(*)(ThreadCancelled(T) &) );
    8484void ^?{}( thread_dtor_guard_t & this );
     
    127127// join
    128128forall( T & | is_thread(T) | IS_RESUMPTION_EXCEPTION(ThreadCancelled, (T))
    129     | { _EHM_VTABLE_TYPE(ThreadCancelled)(T) & const _default_vtable; } )
     129    | { EHM_DEFAULT_VTABLE(ThreadCancelled, (T)); })
    130130T & join( T & this );
    131131
  • libcfa/src/exception.hfa

    raec68b6 r5456537  
    6464        _EHM_VIRTUAL_TABLE(exception_name, arguments, table_name)
    6565
    66 #define EHM_TYPE_ID(exception_name) _EHM_TYPE_ID_TYPE(exception_name)
    67 
    68 #define EHM_MATCH_ALL __cfa__parent_vtable
     66// EHM_DEFAULT_VTABLE(exception_name, (arguments))
     67// Create a declaration for a (possibly polymorphic) default vtable.
     68#define EHM_DEFAULT_VTABLE(exception_name, arguments) \
     69        _EHM_VTABLE_TYPE(exception_name) arguments & const _default_vtable
    6970
    7071// IS_EXCEPTION(exception_name [, (...parameters)])
Note: See TracChangeset for help on using the changeset viewer.