contextengine/src/contextengine.cpp
branchRCL_3
changeset 63 e538444823de
parent 47 b73252188534
equal deleted inserted replaced
57:2872ae438bf7 63:e538444823de
   107         data->iRefCount--;
   107         data->iRefCount--;
   108         if ( data->iRefCount <= 0 )
   108         if ( data->iRefCount <= 0 )
   109             {
   109             {
   110             // destroy the singleton and free TLS
   110             // destroy the singleton and free TLS
   111             delete data;
   111             delete data;
   112             data = NULL;
       
   113             UserSvr::DllFreeTls( KContextEngineTLSKey );
   112             UserSvr::DllFreeTls( KContextEngineTLSKey );
   114             }
   113             }
   115         }
   114         }
   116     }
   115     }
   117 
   116 
   131         static_cast<CContextEngineStaticData*>( UserSvr::DllTls(KContextEngineTLSKey) );
   130         static_cast<CContextEngineStaticData*>( UserSvr::DllTls(KContextEngineTLSKey) );
   132     if ( data )
   131     if ( data )
   133         {
   132         {
   134         // destroy the singleton and free TLS
   133         // destroy the singleton and free TLS
   135         delete data;
   134         delete data;
   136         data = NULL;
       
   137         UserSvr::DllFreeTls( KContextEngineTLSKey );
   135         UserSvr::DllFreeTls( KContextEngineTLSKey );
   138         }
   136         }
   139     }
   137     }
   140 
   138 
   141 // ---------------------------------------------------------------------------
   139 // ---------------------------------------------------------------------------
   144 //
   142 //
   145 CContextEngine::~CContextEngine()
   143 CContextEngine::~CContextEngine()
   146     {
   144     {
   147     WRITELOG( "CContextEngine::~CContextEngine" ); // DEBUG INFO
   145     WRITELOG( "CContextEngine::~CContextEngine" ); // DEBUG INFO
   148     delete iContextEngineAO;
   146     delete iContextEngineAO;
   149     iContextEngineAO = NULL;
       
   150 
   147 
   151     MdsUtils::CleanupPtrArray<CContextSnapshotItem>( &iSnapshotQueue );
   148     MdsUtils::CleanupPtrArray<CContextSnapshotItem>( &iSnapshotQueue );
   152     REComSession::FinalClose(); // we are done
   149     REComSession::FinalClose(); // we are done
   153     }
   150     }
   154 
   151 
   280     {
   277     {
   281     // add a new object
   278     // add a new object
   282     if ( iSnapshotQueue.Append( aItem ) != KErrNone )
   279     if ( iSnapshotQueue.Append( aItem ) != KErrNone )
   283         {
   280         {
   284         delete aItem;
   281         delete aItem;
   285         aItem = NULL;
       
   286         return;
   282         return;
   287         }
   283         }
   288 
   284 
   289     // the queue was empty, start ContextEngineAO
   285     // the queue was empty, start ContextEngineAO
   290     if ( iSnapshotQueue.Count() == 1 )  // if the queue _was_ empty
   286     if ( iSnapshotQueue.Count() == 1 )  // if the queue _was_ empty