diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 91f4ff9b8452d6460f1e0ff77587ab1b6bf0f3e4..11c1fcb1ea55742965dae290461b6e64a402f7c3 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -264,8 +264,7 @@ viewer_media_t LLViewerMedia::updateMediaImpl(LLMediaEntry* media_entry, const s if(media_entry->getCurrentURL().empty()) { // The current media URL is now empty. Unload the media source. - if(was_loaded) - media_impl->destroyMediaSource(); + media_impl->unload(); } else { @@ -1270,6 +1269,17 @@ void LLViewerMediaImpl::navigateHome() navigateTo(mHomeURL, "", true, false); } +////////////////////////////////////////////////////////////////////////////////////////// +void LLViewerMediaImpl::unload() +{ + // Unload the media impl and clear its state. + destroyMediaSource(); + resetPreviousMediaState(); + mMediaURL.clear(); + mMimeType.clear(); + mCurrentMediaURL.clear(); +} + ////////////////////////////////////////////////////////////////////////////////////////// void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type, bool server_request) { diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 4cb081773534f4fd48a90fbb3cf9d487462b5fb3..7cbfb56ffcc4d21792572939c38f5f2bc10bce43 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -165,6 +165,7 @@ class LLViewerMediaImpl void navigateForward(); void navigateReload(); void navigateHome(); + void unload(); void navigateTo(const std::string& url, const std::string& mime_type = "", bool rediscover_type = false, bool server_request = false); void navigateInternal(); void navigateStop();