From 8f530bb156978f20987cde976c0d7185fd793cf7 Mon Sep 17 00:00:00 2001 From: Josh Bell Date: Thu, 13 Sep 2007 17:21:21 +0000 Subject: svn merge -c 68568 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-3-Viewer --> release Re-apply reversion from RC branch. This was un-reverted by the dpo-4 merge. --- indra/llcharacter/llkeyframemotion.cpp | 5 ++++- indra/llcharacter/llkeyframemotion.h | 13 +++++-------- indra/newview/llviewermessage.cpp | 3 --- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp index d8a4acecc1..304de4c6d1 100644 --- a/indra/llcharacter/llkeyframemotion.cpp +++ b/indra/llcharacter/llkeyframemotion.cpp @@ -1838,7 +1838,8 @@ void LLKeyframeMotion::setEaseOut(F32 ease_in) //----------------------------------------------------------------------------- void LLKeyframeMotion::flushKeyframeCache() { - LLKeyframeDataCache::clear(); + // TODO: Make this safe to do +// LLKeyframeDataCache::clear(); } //----------------------------------------------------------------------------- @@ -2092,6 +2093,7 @@ void LLKeyframeDataCache::removeKeyframeData(const LLUUID& id) keyframe_data_map_t::iterator found_data = sKeyframeDataMap.find(id); if (found_data != sKeyframeDataMap.end()) { + delete found_data->second; sKeyframeDataMap.erase(found_data); } } @@ -2122,6 +2124,7 @@ LLKeyframeDataCache::~LLKeyframeDataCache() //----------------------------------------------------------------------------- void LLKeyframeDataCache::clear() { + for_each(sKeyframeDataMap.begin(), sKeyframeDataMap.end(), DeletePairedPointer()); sKeyframeDataMap.clear(); } diff --git a/indra/llcharacter/llkeyframemotion.h b/indra/llcharacter/llkeyframemotion.h index 5a03f7549a..54cf2fefcd 100644 --- a/indra/llcharacter/llkeyframemotion.h +++ b/indra/llcharacter/llkeyframemotion.h @@ -20,7 +20,6 @@ #include "llhandmotion.h" #include "lljointstate.h" #include "llmotion.h" -#include "llmemory.h" #include "llptrskipmap.h" #include "llquaternion.h" #include "v3dmath.h" @@ -132,7 +131,7 @@ public: BOOL serialize(LLDataPacker& dp) const; BOOL deserialize(LLDataPacker& dp); void writeCAL3D(apr_file_t* fp); - BOOL isLoaded() { return mJointMotionList.notNull(); } + BOOL isLoaded() { return mJointMotionList != NULL; } // setters for modifying a keyframe animation @@ -372,11 +371,8 @@ public: //------------------------------------------------------------------------- // JointMotionList //------------------------------------------------------------------------- - class JointMotionList : public LLRefCount + class JointMotionList { - protected: - ~JointMotionList(); - public: U32 mNumJointMotions; JointMotion* mJointMotionArray; @@ -394,6 +390,7 @@ public: LLBBoxLocal mPelvisBBox; public: JointMotionList(); + ~JointMotionList(); U32 dumpDiagInfo(); }; @@ -404,7 +401,7 @@ protected: //------------------------------------------------------------------------- // Member Data //------------------------------------------------------------------------- - LLPointer mJointMotionList; + JointMotionList* mJointMotionList; LLJointState* mJointStates; LLJoint* mPelvisp; LLCharacter* mCharacter; @@ -424,7 +421,7 @@ public: LLKeyframeDataCache(){}; ~LLKeyframeDataCache(); - typedef std::map > keyframe_data_map_t; + typedef std::map keyframe_data_map_t; static keyframe_data_map_t sKeyframeDataMap; static void addKeyframeData(const LLUUID& id, LLKeyframeMotion::JointMotionList*); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ae28df7922..f907ac698e 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -73,7 +73,6 @@ #include "llimpanel.h" #include "llinventorymodel.h" #include "llinventoryview.h" -#include "llkeyframemotion.h" #include "llmenugl.h" #include "llmutelist.h" #include "llnetmap.h" @@ -2695,8 +2694,6 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) llinfos << "Changing home region to " << x << ":" << y << llendl; - LLKeyframeDataCache::clear(); - // set our upstream host the new simulator and shuffle things as // appropriate. LLVector3 shift_vector = regionp->getPosRegionFromGlobal( -- cgit v1.2.3