diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2022-04-06 22:19:10 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2023-07-13 12:34:32 -0400 |
commit | b6bbd86e5e6a23ef8bc81fa2374a82f05b4d18ed (patch) | |
tree | 92137f0da38b18ade12baf730edd06073996c717 | |
parent | 1ef06b04a3b43581d44d41e417fe8b290a4cfde2 (diff) |
DRTVWR-558: Generalize LLEventDispatcher::add() constraints.
Instead of checking whether an add() parameter is exactly LLSD or LLSDMap,
check whether it's convertible to LLSD -- which handles those cases and more.
(cherry picked from commit fa168c11f64771dadc5df86d14ca2f07eba3b8ba)
(cherry picked from commit 6b5bfc1cf674fc568d86d7ed623fd7bb3ee2f646)
-rw-r--r-- | indra/llcommon/lleventdispatcher.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/indra/llcommon/lleventdispatcher.h b/indra/llcommon/lleventdispatcher.h index 3f328dce9a..99f03fe0bc 100644 --- a/indra/llcommon/lleventdispatcher.h +++ b/indra/llcommon/lleventdispatcher.h @@ -216,8 +216,7 @@ public: template<typename Method, typename InstanceGetter> typename std::enable_if< boost::function_types::is_member_function_pointer<Method>::value && - ! std::is_same<InstanceGetter, LLSD>::value && - ! std::is_same<InstanceGetter, LLSDMap>::value + ! std::is_convertible<InstanceGetter, LLSD>::value >::type add(const std::string& name, const std::string& desc, Method f, @@ -306,8 +305,7 @@ public: template<typename Method, typename InstanceGetter> typename std::enable_if< boost::function_types::is_member_function_pointer<Method>::value && - ! std::is_same<InstanceGetter, LLSD>::value && - ! std::is_same<InstanceGetter, LLSDMap>::value + ! std::is_convertible<InstanceGetter, LLSD>::value >::type add(const std::string& name, const std::string& desc, Method f, @@ -561,8 +559,7 @@ void LLEventDispatcher::add(const std::string& name, const std::string& desc, Me template<typename Method, typename InstanceGetter> typename std::enable_if< boost::function_types::is_member_function_pointer<Method>::value && - ! std::is_same<InstanceGetter, LLSD>::value && - ! std::is_same<InstanceGetter, LLSDMap>::value + ! std::is_convertible<InstanceGetter, LLSD>::value >::type LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f, const InstanceGetter& getter) @@ -608,8 +605,7 @@ void LLEventDispatcher::add(const std::string& name, const std::string& desc, Me template<typename Method, typename InstanceGetter> typename std::enable_if< boost::function_types::is_member_function_pointer<Method>::value && - ! std::is_same<InstanceGetter, LLSD>::value && - ! std::is_same<InstanceGetter, LLSDMap>::value + ! std::is_convertible<InstanceGetter, LLSD>::value >::type LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f, const InstanceGetter& getter, |