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