summaryrefslogtreecommitdiff
path: root/indra/newview/lltexlayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/lltexlayer.h')
-rw-r--r--indra/newview/lltexlayer.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index 18e6d6b24f..1924d0bee3 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -534,14 +534,22 @@ public:
};
// Used by LLTexLayerSetBuffer for a callback.
+
+// For DEV-DEV-31590, "Heap corruption and crash after outfit
+// changes", added the mLayerSet member. The current
+// LLTexLayerSetBuffer can be found by querying mLayerSet->mComposite,
+// but we still store the original mLayerSetBuffer here so we can
+// detect when an upload is out of date. This prevents a memory
+// stomp. See LLTexLayerSetBuffer::onTextureUploadComplete() for usage.
class LLBakedUploadData
{
public:
- LLBakedUploadData( LLVOAvatar* avatar, LLTexLayerSetBuffer* layerset_buffer, const LLUUID & id);
+ LLBakedUploadData( LLVOAvatar* avatar, LLTexLayerSet* layerset, LLTexLayerSetBuffer* layerset_buffer, const LLUUID & id);
~LLBakedUploadData() {}
LLUUID mID;
LLVOAvatar* mAvatar; // just backlink, don't LLPointer
+ LLTexLayerSet* mLayerSet;
LLTexLayerSetBuffer* mLayerSetBuffer;
LLUUID mWearableAssets[WT_COUNT];
U64 mStartTime; // Used to measure time baked texture upload requires