diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2025-09-01 22:37:46 +0300 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-09-02 19:31:33 +0300 |
commit | 9959f51741dc6b2eb04485b3443334e1e2e30d19 (patch) | |
tree | 9a7d389346637ac4d1b2f2c1a809c834a374a8e4 | |
parent | 5d50a660bc6ac480b1f92db47bcb3974104bf4d1 (diff) |
#4619 Don't crash on LLHUDEffect::render
LLHUDEffectResetSkeleton needs to override LLHUDEffect::render to not
cause an LL_ERRS if it stays alive for too long.
-rw-r--r-- | indra/newview/llhudeffectresetskeleton.cpp | 9 | ||||
-rw-r--r-- | indra/newview/llhudeffectresetskeleton.h | 13 |
2 files changed, 16 insertions, 6 deletions
diff --git a/indra/newview/llhudeffectresetskeleton.cpp b/indra/newview/llhudeffectresetskeleton.cpp index 31065a3e76..2bb5696f59 100644 --- a/indra/newview/llhudeffectresetskeleton.cpp +++ b/indra/newview/llhudeffectresetskeleton.cpp @@ -56,6 +56,15 @@ LLHUDEffectResetSkeleton::~LLHUDEffectResetSkeleton() //----------------------------------------------------------------------------- // packData() //----------------------------------------------------------------------------- +void LLHUDEffectResetSkeleton::render() +{ + // HUDEffectResetSkeleton is a fake effect meant to reset skeleton only. + // Just wait for an update() call to do its work and then die. +} + +//----------------------------------------------------------------------------- +// packData() +//----------------------------------------------------------------------------- void LLHUDEffectResetSkeleton::packData(LLMessageSystem *mesgsys) { // Pack the default data diff --git a/indra/newview/llhudeffectresetskeleton.h b/indra/newview/llhudeffectresetskeleton.h index 39a6137054..c89516d7fc 100644 --- a/indra/newview/llhudeffectresetskeleton.h +++ b/indra/newview/llhudeffectresetskeleton.h @@ -38,20 +38,21 @@ class LLHUDEffectResetSkeleton final : public LLHUDEffect public: friend class LLHUDObject; - /*virtual*/ void markDead(); - /*virtual*/ void setSourceObject(LLViewerObject* objectp); + /*virtual*/ void markDead() override; + /*virtual*/ void setSourceObject(LLViewerObject* objectp) override; - void setTargetObject(LLViewerObject *objp); + void setTargetObject(LLViewerObject *objp) override; void setResetAnimations(bool enable){ mResetAnimations = enable; }; protected: LLHUDEffectResetSkeleton(const U8 type); ~LLHUDEffectResetSkeleton(); - /*virtual*/ void packData(LLMessageSystem *mesgsys); - /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); + void render() override; + void packData(LLMessageSystem *mesgsys) override; + void unpackData(LLMessageSystem *mesgsys, S32 blocknum) override; - void update(); + void update() override; private: bool mResetAnimations; }; |