summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-10-18 14:54:07 -0500
committerRunitaiLinden <davep@lindenlab.com>2023-10-18 14:54:07 -0500
commit1fe76ad0b92329651b44c46667355a903854b783 (patch)
tree404accd3a31d5fc4f601b43e981615778be6dfa8 /indra/newview
parentdedda64d70f58dcd8dcab4ecf4f2ab0fd159adf0 (diff)
SL-20149 Potential fix for crash when unsitting on a reflection probe. Also fix for assertion in lltexturefetch.
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lltexturefetch.cpp4
-rw-r--r--indra/newview/lltoolpie.cpp6
2 files changed, 5 insertions, 5 deletions
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index e669393dba..38c9b3717d 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -1379,7 +1379,9 @@ bool LLTextureFetchWorker::doWork(S32 param)
//
// If it looks like we're busy, keep this request here.
// Otherwise, advance into the HTTP states.
- if (mFetcher->getHttpWaitersCount() || ! acquireHttpSemaphore())
+
+ if (!mHttpHasResource && // sometimes we get into this state when we already have an http resource, go ahead and send the request in that case
+ (mFetcher->getHttpWaitersCount() || ! acquireHttpSemaphore()))
{
setState(WAIT_HTTP_RESOURCE2);
mFetcher->addHttpWaiter(this->mID);
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 935d61f7ea..83a707472e 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -128,11 +128,9 @@ BOOL LLToolPie::handleMouseDown(S32 x, S32 y, MASK mask)
// left mouse down always picks transparent (but see handleMouseUp).
// Also see LLToolPie::handleHover() - priorities are a bit different there.
// Todo: we need a more consistent set of rules to work with
- if (transp_object == visible_object || !visible_object)
+ if (transp_object == visible_object || !visible_object ||
+ !transp_object) // avoid potential for null dereference below, don't make assumptions about behavior of pickImmediate
{
- // Note: if transparent object is null, then visible object is also null
- // since transparent pick includes non-tranpsarent one.
- // !transparent_object check will be covered by transparent_object == visible_object.
mPick = transparent_pick;
}
else