Fix for bug 4126624.
Change the mDrmManagerClientImpl to sp to avoid double delete the pointer.
Change-Id: I7aacea1bc58ab6425ef6f6f09472c6f2970ebb4d
diff --git a/drm/libdrmframework/DrmManagerClient.cpp b/drm/libdrmframework/DrmManagerClient.cpp
index 1d1e258..c1f382a 100644
--- a/drm/libdrmframework/DrmManagerClient.cpp
+++ b/drm/libdrmframework/DrmManagerClient.cpp
@@ -32,7 +32,6 @@
DrmManagerClientImpl::remove(mUniqueId);
mDrmManagerClientImpl->removeClient(mUniqueId);
mDrmManagerClientImpl->setOnInfoListener(mUniqueId, NULL);
- delete mDrmManagerClientImpl; mDrmManagerClientImpl = NULL;
}
status_t DrmManagerClient::setOnInfoListener(
diff --git a/include/drm/DrmManagerClient.h b/include/drm/DrmManagerClient.h
index 12142bc..7a0bf4f 100644
--- a/include/drm/DrmManagerClient.h
+++ b/include/drm/DrmManagerClient.h
@@ -365,7 +365,7 @@
private:
int mUniqueId;
- DrmManagerClientImpl* mDrmManagerClientImpl;
+ sp<DrmManagerClientImpl> mDrmManagerClientImpl;
};
};