summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandar Donchev <Aleksander.Donchev@partner.bmw.de>2017-04-06 16:21:34 +0200
committerChristian Linke <christian.linke@bmw.de>2017-05-02 06:25:51 -0700
commit8f2d32de915abd07dee07de9cbc8b679e947e8ba (patch)
tree1a90916306b7e02234c8d9dd5beca95826e14ee7
parentda78ca5c2eb7e2ff2f9153361774156f8a454daa (diff)
downloadaudiomanager-8f2d32de915abd07dee07de9cbc8b679e947e8ba.tar.gz
The database observer reverse pointer to the handler is initialized in registerObserver.
Signed-off-by: Christian Linke <christian.linke@bmw.de> Change-Id: I5a1c23436ac9bcc37c76a12245c731f327cab0d4
-rw-r--r--AudioManagerCore/src/CAmDatabaseHandlerMap.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp b/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp
index 48ef37b..cc95d28 100644
--- a/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp
+++ b/AudioManagerCore/src/CAmDatabaseHandlerMap.cpp
@@ -3393,22 +3393,20 @@ am_Error_e CAmDatabaseHandlerMap::enumerateConverters(std::function<void(const a
bool CAmDatabaseHandlerMap::registerObserver(IAmDatabaseObserver * iObserver) {
assert(iObserver!=NULL);
- if (std::find(mDatabaseObservers.begin(), mDatabaseObservers.end(),
- iObserver) == mDatabaseObservers.end()) {
- mDatabaseObservers.push_back(
- dynamic_cast<AmDatabaseObserverCallbacks*>(iObserver)), dynamic_cast<AmDatabaseObserverCallbacks*>(iObserver)->mpDatabaseHandler =
- nullptr;
+ if (std::find(mDatabaseObservers.begin(), mDatabaseObservers.end(), iObserver) == mDatabaseObservers.end())
+ {
+ mDatabaseObservers.push_back(static_cast<AmDatabaseObserverCallbacks*>(iObserver));
+ static_cast<AmDatabaseObserverCallbacks*>(iObserver)->mpDatabaseHandler = this;
return true;
}
return false;
}
bool CAmDatabaseHandlerMap::unregisterObserver(IAmDatabaseObserver * iObserver) {
assert(iObserver!=NULL);
- auto it = std::find(mDatabaseObservers.begin(), mDatabaseObservers.end(),
- iObserver);
+ auto it = std::find(mDatabaseObservers.begin(), mDatabaseObservers.end(), iObserver);
if (it != mDatabaseObservers.end()) {
- mDatabaseObservers.erase(it), dynamic_cast<AmDatabaseObserverCallbacks*>(iObserver)->mpDatabaseHandler =
- nullptr;
+ mDatabaseObservers.erase(it);
+ static_cast<AmDatabaseObserverCallbacks*>(iObserver)->mpDatabaseHandler = nullptr;
return true;
}
return false;