summaryrefslogtreecommitdiffstats
path: root/drm
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-01-09 08:32:12 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-01-09 08:32:12 +0000
commit435ba2e250da24bed173d4ca7415f5adb5f7846b (patch)
tree298b4893e03f65c18de9deb212913b1a9e82a546 /drm
parent8c27adc837f2132fb351879c9b1c0a0468102e78 (diff)
parent7676a406a2fff64c8c465c879300a7a35e2e0739 (diff)
downloadframeworks_av-435ba2e250da24bed173d4ca7415f5adb5f7846b.tar.gz
frameworks_av-435ba2e250da24bed173d4ca7415f5adb5f7846b.tar.bz2
frameworks_av-435ba2e250da24bed173d4ca7415f5adb5f7846b.zip
Merge "Make assignment of mPlugin members consistent"
Diffstat (limited to 'drm')
-rw-r--r--drm/libmediadrm/DrmHal.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/drm/libmediadrm/DrmHal.cpp b/drm/libmediadrm/DrmHal.cpp
index 14ff49356e..66c509f647 100644
--- a/drm/libmediadrm/DrmHal.cpp
+++ b/drm/libmediadrm/DrmHal.cpp
@@ -553,12 +553,14 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16],
const String8& appPackageName) {
Mutex::Autolock autoLock(mLock);
- for (size_t i = 0; i < mFactories.size(); i++) {
+ for (size_t i = mFactories.size() - 1; i >= 0; i--) {
if (mFactories[i]->isCryptoSchemeSupported(uuid)) {
- mPlugin = makeDrmPlugin(mFactories[i], uuid, appPackageName);
- if (mPlugin != NULL) {
+ auto plugin = makeDrmPlugin(mFactories[i], uuid, appPackageName);
+ if (plugin != NULL) {
+ mPlugin = plugin;
mPluginV1_1 = drm::V1_1::IDrmPlugin::castFrom(mPlugin);
mPluginV1_2 = drm::V1_2::IDrmPlugin::castFrom(mPlugin);
+ break;
}
}
}
@@ -567,6 +569,9 @@ status_t DrmHal::createPlugin(const uint8_t uuid[16],
mInitCheck = ERROR_UNSUPPORTED;
} else {
if (!mPlugin->setListener(this).isOk()) {
+ mPlugin = NULL;
+ mPluginV1_1 = NULL;
+ mPluginV1_2 = NULL;
mInitCheck = DEAD_OBJECT;
} else {
mInitCheck = OK;