diff options
author | Nate Goergen <nate.goergen.gitlab1@mile10.com> | 2015-03-15 21:45:48 -0500 |
---|---|---|
committer | Tom Rondeau <tom@trondeau.com> | 2015-04-02 15:38:58 -0700 |
commit | 91459f9b06500ac16f555819ef3c20f2029483c8 (patch) | |
tree | 4fde8b143789fbe855fbd7935dcfcb5db0030f57 | |
parent | eae69f3420aea0318709b2bebe61380e8a18134f (diff) |
controlport: avoid copy of outknobs (a temporary).
-rw-r--r-- | gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc b/gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc index a4119f7080..c4655d366e 100644 --- a/gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc +++ b/gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc @@ -133,30 +133,25 @@ void rpcserver_thrift::getKnobs(GNURadio::KnobMap& _return, const GNURadio::KnobIDList& knobs) { - GNURadio::KnobMap outknobs; - if(knobs.size() == 0) { std::for_each(d_getcallbackmap.begin(), d_getcallbackmap.end(), get_all_f<QueryCallbackMap_t::value_type, QueryCallbackMap_t, GNURadio::KnobMap> - (d_getcallbackmap, cur_priv, outknobs)); + (d_getcallbackmap, cur_priv, _return)); } else { std::for_each(knobs.begin(), knobs.end(), get_f<GNURadio::KnobIDList::value_type, QueryCallbackMap_t> - (d_getcallbackmap, cur_priv, outknobs)); + (d_getcallbackmap, cur_priv, _return)); } - _return = outknobs; } void rpcserver_thrift::getRe(GNURadio::KnobMap& _return, const GNURadio::KnobIDList& knobs) { - GNURadio::KnobMap outknobs; - if(knobs.size() == 0) { std::for_each(d_getcallbackmap.begin(), d_getcallbackmap.end(), get_all_f<QueryCallbackMap_t::value_type, QueryCallbackMap_t, GNURadio::KnobMap> - (d_getcallbackmap, cur_priv, outknobs)); + (d_getcallbackmap, cur_priv, _return)); } else { QueryCallbackMap_t::iterator it; @@ -165,34 +160,30 @@ rpcserver_thrift::getRe(GNURadio::KnobMap& _return, const GNURadio::KnobIDList& const boost::xpressive::sregex re(boost::xpressive::sregex::compile(knobs[j])); if(boost::xpressive::regex_match(it->first, re)) { get_f<GNURadio::KnobIDList::value_type, QueryCallbackMap_t> - (d_getcallbackmap, cur_priv, outknobs)(it->first); + (d_getcallbackmap, cur_priv, _return)(it->first); break; } } } } - _return = outknobs; } void rpcserver_thrift::properties(GNURadio::KnobPropMap& _return, const GNURadio::KnobIDList& knobs) { - GNURadio::KnobPropMap outknobs; - if(knobs.size() == 0) { std::for_each(d_getcallbackmap.begin(), d_getcallbackmap.end(), properties_all_f<QueryCallbackMap_t::value_type, QueryCallbackMap_t, GNURadio::KnobPropMap>(d_getcallbackmap, - cur_priv, outknobs)); + cur_priv, _return)); } else { std::for_each(knobs.begin(), knobs.end(), properties_f<GNURadio::KnobIDList::value_type, QueryCallbackMap_t, GNURadio::KnobPropMap>(d_getcallbackmap, - cur_priv, outknobs)); + cur_priv, _return)); } - _return = outknobs; } void |