diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2009-06-27 01:05:56 +0000 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2009-06-27 01:05:56 +0000 |
commit | cb8641a639d077fe03853e69be597ee359f5a01f (patch) | |
tree | f6f76a534fc45fd4a2bbdface46d62cc5d6237f6 /indra/newview/llvoavatar.cpp | |
parent | 6f613fb70ff28ee090dc0871b461a62bd2aa0d08 (diff) |
fix for DEV-27483/SEC-283: Viewer crash: LLXform::setParent Creating loop when setting parent
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 176f8fb37b..c2b54ec9c6 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5315,12 +5315,13 @@ void LLVOAvatar::hideSkirt() mMeshLOD[MESH_ID_SKIRT]->setVisible(FALSE, TRUE); } -void LLVOAvatar::setParent(LLViewerObject* parent) +BOOL LLVOAvatar::setParent(LLViewerObject* parent) { + BOOL ret ; if (parent == NULL) { getOffObject(); - LLViewerObject::setParent(parent); + ret = LLViewerObject::setParent(parent); if (isSelf()) { gAgent.resetCamera(); @@ -5328,9 +5329,13 @@ void LLVOAvatar::setParent(LLViewerObject* parent) } else { - LLViewerObject::setParent(parent); - sitOnObject(parent); + ret = LLViewerObject::setParent(parent); + if(ret) + { + sitOnObject(parent); + } } + return ret ; } void LLVOAvatar::addChild(LLViewerObject *childp) |