summaryrefslogtreecommitdiff
path: root/indra/llcharacter
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2007-09-13 17:21:21 +0000
committerJosh Bell <josh@lindenlab.com>2007-09-13 17:21:21 +0000
commit8f530bb156978f20987cde976c0d7185fd793cf7 (patch)
tree9472275529a44b352b13aa8acdc1ce6f0f0493a4 /indra/llcharacter
parent3d58b54f0e5aeb86efad2450cc4698662e3f4347 (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.cpp5
-rw-r--r--indra/llcharacter/llkeyframemotion.h13
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*);