diff options
| author | Rider Linden <rider@lindenlab.com> | 2016-07-11 16:33:11 -0700 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2016-07-11 16:33:11 -0700 | 
| commit | c1c9b3d74e17d8e5793c9b87e211a30d71245e93 (patch) | |
| tree | 8fcb79f6f45e92382d26ad658795c94c846e9589 /indra/newview | |
| parent | f868e29945806fd6cefde65067ae2c870ac112a6 (diff) | |
MAINT-6565: Grab a shared pointer and encapsulate it into the bind call in place of this. Ensures that the impl is not deleted while the coroutine is active.
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lleventpoll.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/lleventpoll.h | 2 | 
2 files changed, 4 insertions, 5 deletions
| diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index 7178042b32..51967d54a0 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -45,7 +45,7 @@ namespace LLEventPolling  namespace Details  { -    class LLEventPollImpl +    class LLEventPollImpl: public boost::enable_shared_from_this<LLEventPollImpl>      {      public:          LLEventPollImpl(const LLHost &sender); @@ -113,7 +113,7 @@ namespace Details          {              std::string coroname =                  LLCoros::instance().launch("LLEventPollImpl::eventPollCoro", -                boost::bind(&LLEventPollImpl::eventPollCoro, this, url)); +                boost::bind(&LLEventPollImpl::eventPollCoro, this->shared_from_this(), url));              LL_INFOS("LLEventPollImpl") << coroname << " with  url '" << url << LL_ENDL;          }      } @@ -273,8 +273,7 @@ namespace Details  LLEventPoll::LLEventPoll(const std::string&	poll_url, const LLHost& sender):      mImpl()  {  -    mImpl = boost::unique_ptr<LLEventPolling::Details::LLEventPollImpl> -            (new LLEventPolling::Details::LLEventPollImpl(sender)); +    mImpl = boost::shared_ptr<LLEventPolling::Details::LLEventPollImpl>(new LLEventPolling::Details::LLEventPollImpl(sender));      mImpl->start(poll_url);  } diff --git a/indra/newview/lleventpoll.h b/indra/newview/lleventpoll.h index e2afd9226b..d305135b18 100644 --- a/indra/newview/lleventpoll.h +++ b/indra/newview/lleventpoll.h @@ -57,7 +57,7 @@ public:  private: -    boost::unique_ptr<LLEventPolling::Details::LLEventPollImpl>    mImpl; +    boost::shared_ptr<LLEventPolling::Details::LLEventPollImpl>  mImpl;  }; | 
