Destroy

 (Available in 01 TS COM - TS_COM_StaticObjectsRepo)

Source

METHOD Destroy( ) CLASS TS_StaticObjectsRepo
LOCAL pSORDataA AS _TS_SORData
LOCAL pSORDataB AS _TS_SORData
LOCAL pSORDataC AS _TS_SORData
LOCAL pSORDataD AS _TS_SORData
LOCAL A AS DWORD
LOCAL B AS DWORD
LOCAL C AS DWORD
LOCAL D AS DWORD
   TSTrace Enter
   pSORDataA:=SELF:_SORData
   SELF:_SORData:=NULL_PTR
   IF LOGIC( _CAST, pSORDataA )
      IF LOGIC( _CAST, pSORDataA.Used )
         TSTrace Error "LOGIC(_CAST,pSORDataA.Used)"
      END
      FOR A:=1U UPTO _TS_SOR_STEP
         pSORDataB:=pSORDataA.Items[ A ]
         IF LOGIC( _CAST, pSORDataB )
            IF LOGIC( _CAST, pSORDataB.Used )
               TSTrace Error "LOGIC(_CAST,pSORDataB.Used)"
            END
            FOR B:=1U UPTO _TS_SOR_STEP
               pSORDataC:=pSORDataB.Items[ B ]
               IF LOGIC( _CAST, pSORDataC )
                  IF LOGIC( _CAST, pSORDataC.Used )
                     TSTrace Error "LOGIC(_CAST,pSORDataC.Used)"
                  END
                  FOR C:=1U UPTO _TS_SOR_STEP
                     pSORDataD:=pSORDataC.Items[ C ]
                     IF LOGIC( _CAST, pSORDataD )
                        IF LOGIC( _CAST, pSORDataD.Used )
                           TSTrace Error "LOGIC(_CAST,pSORDataD.Used)"
                        END
                        FOR D:=1U UPTO _TS_SOR_STEP
                           IF LOGIC( _CAST, pSORDataD.Items[ D ] )
                              TSTrace Error "LOGIC(_CAST,pSORDataD.Items[D])"
                              pSORDataD.Items[ D ]:=NULL_PTR
                           END
                        NEXT
                        IF pSORDataD.Registered
                           pSORDataD.Registered:=FALSE
                           UnRegisterKid( @pSORDataD.Items )
                        ELSE
                           TSTrace Error "!pSORDataD.Registered"
                        END
                        IF LOGIC( _CAST, TS_MemFree( pSORDataD, TRUE ) )
                           TSTrace Error "LOGIC(_CAST,TS_MemFree(pSORDataD,TRUE))"
                        END
                     END
                  NEXT
                  IF pSORDataC.Registered
                     TSTrace Error "pSORDataC.Registered"
                     pSORDataC.Registered:=FALSE
                     UnRegisterKid( @pSORDataC.Items )
                  END
                  IF LOGIC( _CAST, TS_MemFree( pSORDataC, TRUE ) )
                     TSTrace Error "LOGIC(_CAST,TS_MemFree(pSORDataC,TRUE))"
                  END
               END
            NEXT
            IF pSORDataB.Registered
               TSTrace Error "pSORDataB.Registered"
               pSORDataB.Registered:=FALSE
               UnRegisterKid( @pSORDataB.Items )
            END
            IF LOGIC( _CAST, TS_MemFree( pSORDataB, TRUE ) )
               TSTrace Error "LOGIC(_CAST,TS_MemFree(pSORDataB,TRUE))"
            END
         END
      NEXT
      IF pSORDataA.Registered
         TSTrace Error "pSORDataA.Registered"
         pSORDataA.Registered:=FALSE
         UnRegisterKid( @pSORDataA.Items )
      END
      IF LOGIC( _CAST, TS_MemFree( pSORDataA, TRUE ) )
         TSTrace Error "LOGIC(_CAST,TS_MemFree(pSORDataA,TRUE))"
      END
   END
   TSTrace Leave DESTROY
RETURN NIL