Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/virtual_dtor.hfa

    r1e940de0 r8512a2f  
    2525    __virtual_obj_start = &this;
    2626}
    27 static inline bool __CFA_dtor_shutdown( virtual_dtor & this ) with(this) {
    28     if ( __virtual_dtor_ptr == 1p ) return true; // stop base dtors from being called twice
     27static inline void __CFA_dtor_shutdown( virtual_dtor & this ) with(this) {
    2928    if ( __virtual_dtor_ptr ) {
    3029        void (*dtor_ptr)(virtual_dtor &) = __virtual_dtor_ptr;
    3130        __virtual_dtor_ptr = 0p;
    32         dtor_ptr(*((virtual_dtor *)__virtual_obj_start)); // call most derived dtor
    33         __virtual_dtor_ptr = 1p; // stop base dtors from being called twice
    34         return true;
     31        dtor_ptr(*((virtual_dtor *)__virtual_obj_start)); // replace actor with base type
     32        return;
    3533    }
    36     return false;
    3734}
    3835static inline void __CFA_virt_free( virtual_dtor & this ) { free( this.__virtual_obj_start ); }
Note: See TracChangeset for help on using the changeset viewer.