diff --git a/indra/llprimitive/llmaterialid.cpp b/indra/llprimitive/llmaterialid.cpp index fc72961ea..81b457542 100644 --- a/indra/llprimitive/llmaterialid.cpp +++ b/indra/llprimitive/llmaterialid.cpp @@ -42,8 +42,11 @@ LLMaterialID::LLMaterialID() LLMaterialID::LLMaterialID(const LLSD& pMaterialID) { - llassert(pMaterialID.isBinary()); - parseFromBinary(pMaterialID.asBinary()); + llassert(pMaterialID.isBinary() || pMaterialID.isUUID()); + if (pMaterialID.isUUID()) + set(pMaterialID.asUUID().mData); + else + parseFromBinary(pMaterialID.asBinary()); } LLMaterialID::LLMaterialID(const LLSD::Binary& pMaterialID) diff --git a/indra/llprimitive/llmaterialid.h b/indra/llprimitive/llmaterialid.h index 275939032..1a086e23b 100644 --- a/indra/llprimitive/llmaterialid.h +++ b/indra/llprimitive/llmaterialid.h @@ -36,6 +36,7 @@ class LLMaterialID { public: LLMaterialID(); + LLMaterialID(const LLUUID& id) { set(id.mData); } LLMaterialID(const LLSD& pMaterialID); LLMaterialID(const LLSD::Binary& pMaterialID); LLMaterialID(const void* pMemory);