diff options
author | Josh Bell <josh@lindenlab.com> | 2007-09-13 17:21:21 +0000 |
---|---|---|
committer | Josh Bell <josh@lindenlab.com> | 2007-09-13 17:21:21 +0000 |
commit | 8f530bb156978f20987cde976c0d7185fd793cf7 (patch) | |
tree | 9472275529a44b352b13aa8acdc1ce6f0f0493a4 /indra/llcharacter | |
parent | 3d58b54f0e5aeb86efad2450cc4698662e3f4347 (diff) |
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.
Diffstat (limited to 'indra/llcharacter')
-rw-r--r-- | indra/llcharacter/llkeyframemotion.cpp | 5 | ||||
-rw-r--r-- | indra/llcharacter/llkeyframemotion.h | 13 |
2 files changed, 9 insertions, 9 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<JointMotionList> mJointMotionList; + JointMotionList* mJointMotionList; LLJointState* mJointStates; LLJoint* mPelvisp; LLCharacter* mCharacter; @@ -424,7 +421,7 @@ public: LLKeyframeDataCache(){}; ~LLKeyframeDataCache(); - typedef std::map<LLUUID, LLPointer<class LLKeyframeMotion::JointMotionList> > keyframe_data_map_t; + typedef std::map<LLUUID, class LLKeyframeMotion::JointMotionList*> keyframe_data_map_t; static keyframe_data_map_t sKeyframeDataMap; static void addKeyframeData(const LLUUID& id, LLKeyframeMotion::JointMotionList*); |