From 2e7c5f413eb4f5f5b190004f3acb42f7cf59d9b9 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Fri, 21 Aug 2009 22:51:12 +0000 Subject: [PATCH] Cleanup get_function implementation --- .../chaiscript/dispatchkit/dispatchkit.hpp | 42 ++++--------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index 6fcab0b..2507528 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -257,7 +257,7 @@ namespace chaiscript } } - std::vector::mapped_type> > funcs = get_function_impl(name, false); + std::vector::mapped_type> > funcs = get_function(name); if (funcs.empty()) { @@ -321,12 +321,16 @@ namespace chaiscript /** * Return a function by name */ - std::vector::mapped_type> > + std::vector::mapped_type> > get_function(const std::string &t_name) const { - return get_function_impl(t_name, false); + std::pair::const_iterator, std::multimap::const_iterator> range + = m_functions.equal_range(t_name); + + return std::vector::mapped_type> >(range.first, range.second); } - + + /** * Get a vector of all registered functions */ @@ -336,36 +340,6 @@ namespace chaiscript } private: - /** - * Implementation detail for searching for a function by name. - * Looks for all registered global functions and optionally for an object - * in scope with the same name - */ - std::vector::mapped_type> > - get_function_impl(const std::string &t_name, bool include_objects) const - { - std::vector::mapped_type> > funcs; - - if (include_objects) - { - try { - funcs.insert(funcs.end(), - std::make_pair( - t_name, - boxed_cast::mapped_type>(get_object(t_name))) - ); - } catch (const bad_boxed_cast &) { - } catch (const std::range_error &) { - } - } - - std::pair::const_iterator, std::multimap::const_iterator> range - = m_functions.equal_range(t_name); - - funcs.insert(funcs.end(), range.first, range.second); - return funcs; - } - /** * Implementation detail for adding a function. Returns * true if the function was added, false if a function with the