EXT-6895 - Crash in landmarkNameCallback

reviewed by Leyla
Richard Linden 2010-04-16 13:30:51 -07:00
parent 814ca2ad1e
commit 9b6da49ef5
1 changed files with 15 additions and 8 deletions

View File

@ -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;
};
/**