summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Goergen <nate.goergen.gitlab1@mile10.com>2015-03-15 21:45:48 -0500
committerTom Rondeau <tom@trondeau.com>2015-04-02 15:38:58 -0700
commit91459f9b06500ac16f555819ef3c20f2029483c8 (patch)
tree4fde8b143789fbe855fbd7935dcfcb5db0030f57
parenteae69f3420aea0318709b2bebe61380e8a18134f (diff)
controlport: avoid copy of outknobs (a temporary).
-rw-r--r--gnuradio-runtime/lib/controlport/thrift/rpcserver_thrift.cc21
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