diff options
-rw-r--r-- | indra/viewer_components/login/lllogin.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index 575a709761..c6ed98c6b6 100644 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -105,9 +105,12 @@ private: return response; } - typedef boost::coroutines::coroutine<void(const std::string&, const LLSD&)> coroutine_type; + typedef boost::coroutines::coroutine<void(std::string, LLSD)> coroutine_type; - void login_(coroutine_type::self& self, const std::string& uri, const LLSD& credentials); + // In a coroutine's top-level function args, do NOT NOT NOT accept + // references (const or otherwise) to anything but the self argument! Pass + // by value only! + void login_(coroutine_type::self& self, std::string uri, LLSD credentials); LLEventStream mPump; LLSD mAuthResponse, mValidAuthResponse; @@ -124,8 +127,7 @@ void LLLogin::Impl::connect(const std::string& uri, const LLSD& credentials) uri, credentials); } -void LLLogin::Impl::login_(coroutine_type::self& self, - const std::string& uri, const LLSD& credentials) +void LLLogin::Impl::login_(coroutine_type::self& self, std::string uri, LLSD credentials) { LL_INFOS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self) << LL_ENDL; // Arriving in SRVRequest state |