summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx (Neal Orman) <nyx@lindenlab.com>2010-07-07 17:03:43 -0400
committerNyx (Neal Orman) <nyx@lindenlab.com>2010-07-07 17:03:43 -0400
commite50692ef4b8102291dbc668b4de64e8c511fcfab (patch)
treea8928b084aaf69b30838dc543a8d842ac39a4d16
parentaef4f6ccabe0b2f72296f1a4ae5634080396690a (diff)
SNOW-704 EXT-8267 FIX Crash on login for invalid inventory wearable type data
Used to assert that the inventory's stored wearable type data matched the asset's stored wearable type, leading to a crash when these did not line up. Converted the assert to a check with llwarns for when this happens. code reviewed by vir
-rw-r--r--indra/newview/llappearancemgr.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index f8cff42412..d8403d54f2 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -830,10 +830,14 @@ void LLWearableHoldingPattern::onWearableAssetFetch(LLWearable *wearable)
LLFoundData& data = *iter;
if(wearable->getAssetID() == data.mAssetID)
{
- data.mWearable = wearable;
// Failing this means inventory or asset server are corrupted in a way we don't handle.
- llassert((data.mWearableType < LLWearableType::WT_COUNT) && (wearable->getType() == data.mWearableType));
- break;
+ if ((data.mWearableType >= LLWearableType::WT_COUNT) || (wearable->getType() != data.mWearableType))
+ {
+ llwarns << "recovered wearable but type invalid. inventory wearable type: " << data.mWearableType << " asset wearable type: " << wearable->getType() << llendl;
+ break;
+ }
+
+ data.mWearable = wearable;
}
}
}