summaryrefslogtreecommitdiff
path: root/indra/llcharacter
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2007-08-28 21:19:20 +0000
committerJosh Bell <josh@lindenlab.com>2007-08-28 21:19:20 +0000
commit6d2c503f6132ed9cdb43f5e0e4e977eff31618a4 (patch)
treeafc1c311c779cef55b0950ebf07f56721373d597 /indra/llcharacter
parentce0a5fe14590b8d675b885fccd5f79d7ea17a302 (diff)
svn merge -r 68474:68690 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-3-Viewer --> release
Sync up fixes, version numbers, and release notes applied to the viewer RC branch.
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*);