summaryrefslogtreecommitdiff
path: root/indra/newview/llteleporthistory.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2011-10-19 14:09:58 -0700
committerMerov Linden <merov@lindenlab.com>2011-10-19 14:09:58 -0700
commitb8e954f98d37cb8e045135dd6bbaab9fc4421529 (patch)
tree4a9376677ef60ae6f6ad80e150f432b11d242dde /indra/newview/llteleporthistory.cpp
parent525eb6ba9f38565be6038b5dd78cf0fb7bf0ff45 (diff)
EXP-1353, EXP-1408, EXP-1410 : Fix bugs all related to Teleport History management. Note to dev: some use of boost trckable are being deprecated for thread safety so disconnect established connections in destructors. Also beware of singleton depending on each other as they are lazily instantiated.
Diffstat (limited to 'indra/newview/llteleporthistory.cpp')
-rw-r--r--indra/newview/llteleporthistory.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index 0d8b45db1f..50a088b799 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -56,7 +56,8 @@ const std::string& LLTeleportHistoryItem::getTitle() const
LLTeleportHistory::LLTeleportHistory():
mCurrentItem(-1),
mRequestedItem(-1),
- mGotInitialUpdate(false)
+ mGotInitialUpdate(false),
+ mTeleportHistoryStorage(NULL)
{
mTeleportFinishedConn = LLViewerParcelMgr::getInstance()->
setTeleportFinishedCallback(boost::bind(&LLTeleportHistory::updateCurrentLocation, this, _1));
@@ -115,6 +116,10 @@ void LLTeleportHistory::handleLoginComplete()
void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
{
+ if (!mTeleportHistoryStorage)
+ {
+ mTeleportHistoryStorage = LLTeleportHistoryStorage::getInstance();
+ }
if (mRequestedItem != -1) // teleport within the history in progress?
{
mCurrentItem = mRequestedItem;
@@ -152,7 +157,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check
{
llwarns << "Invalid current item. (this should not happen)" << llendl;
- llassert(!"Invalid current teleport histiry item");
+ llassert(!"Invalid current teleport history item");
return;
}
LLVector3 new_pos_local = gAgent.getPosAgentFromGlobal(new_pos);