summaryrefslogtreecommitdiff
path: root/indra/newview/llfavoritesbar.cpp
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2010-04-19 14:30:43 +0100
committerTofu Linden <tofu.linden@lindenlab.com>2010-04-19 14:30:43 +0100
commitf28a9b3ca52978772e2963f4610a1bab1f1e9cee (patch)
treeb0c4a68d3260a01845c8d94b66e93efbd6b102b8 /indra/newview/llfavoritesbar.cpp
parent186224ab91e53c712537887f3d08293520338250 (diff)
parent532d732645f2369d17eba9c2ed0d594b486d416e (diff)
merge from viewer-trunk
Diffstat (limited to 'indra/newview/llfavoritesbar.cpp')
-rw-r--r--indra/newview/llfavoritesbar.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index ba92c33d59..4c1e3461a5 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -75,7 +75,9 @@ public:
mPosY(0),
mPosZ(0),
mLoaded(false)
- {}
+ {
+ mHandle.bind(this);
+ }
void setLandmarkID(const LLUUID& id) { mLandmarkID = id; }
const LLUUID& getLandmarkId() const { return mLandmarkID; }
@@ -122,17 +124,21 @@ private:
if(LLLandmarkActions::getLandmarkGlobalPos(mLandmarkID, g_pos))
{
LLLandmarkActions::getRegionNameAndCoordsFromPosGlobal(g_pos,
- boost::bind(&LLLandmarkInfoGetter::landmarkNameCallback, this, _1, _2, _3, _4));
+ boost::bind(&LLLandmarkInfoGetter::landmarkNameCallback, static_cast<LLHandle<LLLandmarkInfoGetter> >(mHandle), _1, _2, _3, _4));
}
}
- void landmarkNameCallback(const std::string& name, S32 x, S32 y, S32 z)
+ static void landmarkNameCallback(LLHandle<LLLandmarkInfoGetter> handle, const std::string& name, S32 x, S32 y, S32 z)
{
- mPosX = x;
- mPosY = y;
- mPosZ = z;
- mName = name;
- mLoaded = true;
+ LLLandmarkInfoGetter* getter = handle.get();
+ if (getter)
+ {
+ getter->mPosX = x;
+ getter->mPosY = y;
+ getter->mPosZ = z;
+ getter->mName = name;
+ getter->mLoaded = true;
+ }
}
LLUUID mLandmarkID;
@@ -141,6 +147,7 @@ private:
S32 mPosY;
S32 mPosZ;
bool mLoaded;
+ LLRootHandle<LLLandmarkInfoGetter> mHandle;
};
/**