diff --git a/libwvdrmengine/cdm/core/src/cdm_session.cpp b/libwvdrmengine/cdm/core/src/cdm_session.cpp index 03afc3af..db8ffc0a 100644 --- a/libwvdrmengine/cdm/core/src/cdm_session.cpp +++ b/libwvdrmengine/cdm/core/src/cdm_session.cpp @@ -775,6 +775,7 @@ CdmResponseType CdmSession::DeleteUsageEntry(uint32_t usage_entry_number) { // The usage entry cannot be deleted if it has a crypto session handling // it, so close and reopen session. + UpdateUsageEntryInformation(); CdmResponseType sts; crypto_session_->Close(); crypto_session_.reset(CryptoSession::MakeCryptoSession(crypto_metrics_)); @@ -936,14 +937,14 @@ CdmResponseType CdmSession::RemoveKeys() { } CdmResponseType CdmSession::RemoveLicense() { + CdmResponseType sts = NO_ERROR; if (is_offline_ || has_provider_session_token()) { - DeleteLicenseFile(); if (usage_support_type_ == kUsageEntrySupport && has_provider_session_token()) { - CdmResponseType sts = DeleteUsageEntry(usage_entry_number_); - if (NO_ERROR != sts) return sts; + sts = DeleteUsageEntry(usage_entry_number_); } + DeleteLicenseFile(); } return NO_ERROR; }