UnRegisterAxit

 (Available in 00 TS Tools(Base) - TS_Tools_Root0)

Purpose

Tell the GC to not call the 'Axit' method

Syntax

SELF:UnRegisterAxit( )

Description

Let the GC know that the 'Destroy()/Axit()' method of the object was being called and no calls from the GC are needed.

Note: Calling 'SUPER:Destroy()' should be the last thing that the application code does in it's 'Destroy()' method.

Note: When the 'SUPER:Destroy()' method returns the 'SELF:IsInDestroy' status wil be false, and the SELF:IsDestroyed' status wil be true.

Example

METHOD Destroy( ) CLASS SomeClass
// Let it be known that we are destroying the object
   SELF:IsInDestroy:=TRUE 
// Do the destructive work
   ... 
// All work should be done before calling SUPER
   SUPER:Destroy( ) 
RETURN NIL

Source

METHOD UnRegisterAxit( ) AS TS_Root0 PASCAL CLASS TS_Root0
   TSTrace Enter
   IF LOGIC( _CAST, _AND( SELF:_ObjectStat1, TS_OBJSTAT1_AXITREGISTERED  ; ...
  ... ) )
      SELF:_ObjectStat1:=_AND( SELF:_ObjectStat1 ; ...
     ... , _NOT( TS_OBJSTAT1_AXITREGISTERED ) )
      IF !InCollect( )
         IF IsDynPtr( PTR( _CAST, SELF ) )
            UnRegisterAxit( SELF )
         END
      END
   END
   TSTrace Leave
RETURN SELF