equal
deleted
inserted
replaced
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 |