diff options
author | andreykproductengine <akleshchev@productengine.com> | 2015-07-30 18:35:33 +0300 |
---|---|---|
committer | andreykproductengine <akleshchev@productengine.com> | 2015-07-30 18:35:33 +0300 |
commit | b30dd09e478e93ab9bbc6e6a88f8796e19fc4bdb (patch) | |
tree | d490bf2e4ac2f478c64cb5bc1164a87cc1c8df55 | |
parent | 07020ffce092d44c0fc376ab33151391e60cad52 (diff) |
MAINT-5430 Crash LLAssetStorage::downloadCompleteCallback
-rwxr-xr-x | indra/llmessage/llassetstorage.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/indra/llmessage/llassetstorage.cpp b/indra/llmessage/llassetstorage.cpp index 8ba2535531..61663e1982 100755 --- a/indra/llmessage/llassetstorage.cpp +++ b/indra/llmessage/llassetstorage.cpp @@ -633,6 +633,10 @@ void LLAssetStorage::downloadCompleteCallback( vfile.remove(); } } + + // we will be deleting elements of mPendingDownloads which req might be part of, save id and type for reference + LLUUID callback_id = req->getUUID(); + LLAssetType::EType callback_type = req->getType(); // find and callback ALL pending requests for this UUID // SJB: We process the callbacks in reverse order, I do not know if this is important, @@ -660,7 +664,7 @@ void LLAssetStorage::downloadCompleteCallback( { add(sFailedDownloadCount, 1); } - tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result, ext_status); + tmp->mDownCallback(gAssetStorage->mVFS, callback_id, callback_type, tmp->mUserData, result, ext_status); } delete tmp; } |