From c1c9b3d74e17d8e5793c9b87e211a30d71245e93 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Mon, 11 Jul 2016 16:33:11 -0700 Subject: 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. --- indra/newview/lleventpoll.cpp | 7 +++---- indra/newview/lleventpoll.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'indra') 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 { 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 - (new LLEventPolling::Details::LLEventPollImpl(sender)); + mImpl = boost::shared_ptr(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 mImpl; + boost::shared_ptr mImpl; }; -- cgit v1.2.3 From c0407af8ab181662f6049ae2cf4ca1fd562debe4 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Tue, 12 Jul 2016 11:07:05 -0700 Subject: STORM-2132: Remove obsoleted unique_ptr.hpp, use make_shared for pointer allocation. --- indra/newview/lleventpoll.cpp | 4 +++- indra/newview/lleventpoll.h | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) (limited to 'indra') diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index 51967d54a0..cc77b407ae 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -40,6 +40,8 @@ #include "llcorehttputil.h" #include "lleventfilter.h" +#include "boost/make_shared.hpp" + namespace LLEventPolling { namespace Details @@ -273,7 +275,7 @@ namespace Details LLEventPoll::LLEventPoll(const std::string& poll_url, const LLHost& sender): mImpl() { - mImpl = boost::shared_ptr(new LLEventPolling::Details::LLEventPollImpl(sender)); + mImpl = boost::make_shared(sender); mImpl->start(poll_url); } diff --git a/indra/newview/lleventpoll.h b/indra/newview/lleventpoll.h index d305135b18..65766dbb2a 100644 --- a/indra/newview/lleventpoll.h +++ b/indra/newview/lleventpoll.h @@ -27,12 +27,6 @@ #ifndef LL_LLEVENTPOLL_H #define LL_LLEVENTPOLL_H -#include "boost/move/unique_ptr.hpp" - -namespace boost -{ - using ::boost::movelib::unique_ptr; // move unique_ptr into the boost namespace. -} class LLHost; -- cgit v1.2.3