diff options
Diffstat (limited to 'indra/llxml')
| -rw-r--r-- | indra/llxml/llcontrol.cpp | 6 | ||||
| -rw-r--r-- | indra/llxml/llcontrol.h | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp index 2271c02cd0..9d0cdacb1d 100644 --- a/indra/llxml/llcontrol.cpp +++ b/indra/llxml/llcontrol.cpp @@ -1176,7 +1176,7 @@ template<> LLVector3 convert_from_llsd<LLVector3>(const LLSD& sd, eControlType type, const std::string& control_name) { if (type == TYPE_VEC3) - return sd; + return (LLVector3)sd; else { CONTROL_ERRS << "Invalid LLVector3 value" << llendl; @@ -1188,7 +1188,7 @@ template<> LLVector3d convert_from_llsd<LLVector3d>(const LLSD& sd, eControlType type, const std::string& control_name) { if (type == TYPE_VEC3D) - return sd; + return (LLVector3d)sd; else { CONTROL_ERRS << "Invalid LLVector3d value" << llendl; @@ -1200,7 +1200,7 @@ template<> LLRect convert_from_llsd<LLRect>(const LLSD& sd, eControlType type, const std::string& control_name) { if (type == TYPE_RECT) - return sd; + return LLRect(sd); else { CONTROL_ERRS << "Invalid rect value" << llendl; diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index 0a8e665c55..37939a0908 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -332,10 +332,6 @@ public: ~LLControlCache() { - if(mConnection.connected()) - { - mConnection.disconnect(); - } } const T& getValue() const { return mCachedValue; } @@ -378,7 +374,7 @@ private: private: T mCachedValue; eControlType mType; - boost::signals2::connection mConnection; + boost::signals2::scoped_connection mConnection; }; template <typename T> |
