diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-01-09 08:32:12 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-01-09 08:32:12 +0000 |
| commit | 435ba2e250da24bed173d4ca7415f5adb5f7846b (patch) | |
| tree | 298b4893e03f65c18de9deb212913b1a9e82a546 /drm | |
| parent | 8c27adc837f2132fb351879c9b1c0a0468102e78 (diff) | |
| parent | 7676a406a2fff64c8c465c879300a7a35e2e0739 (diff) | |
| download | frameworks_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.cpp | 11 |
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; |
