]> sigrok.org Git - pulseview.git/blobdiff - pv/binding/device.cpp
fix catching polymorphic types by value
[pulseview.git] / pv / binding / device.cpp
index 458a9d69a71d64c2bda65cb24f3ad0b85e24394e..df83f082e355d1c1ecc3c106d4055075cd9123b4 100644 (file)
@@ -32,7 +32,6 @@
 using boost::optional;
 
 using std::function;
-using std::make_pair;
 using std::pair;
 using std::set;
 using std::shared_ptr;
@@ -69,7 +68,7 @@ Device::Device(shared_ptr<sigrok::Configurable> configurable) :
                string name_str;
                try {
                        name_str = key->description();
-               } catch (Error e) {
+               } catch (Error& e) {
                        name_str = key->name();
                }
 
@@ -89,8 +88,7 @@ Device::Device(shared_ptr<sigrok::Configurable> configurable) :
                        break;
 
                case SR_CONF_CAPTURE_RATIO:
-                       bind_int(name, "", "%", pair<int64_t, int64_t>(0, 100),
-                               get, set);
+                       bind_int(name, "", "%", pair<int64_t, int64_t>(0, 100), get, set);
                        break;
 
                case SR_CONF_PATTERN_MODE:
@@ -158,7 +156,7 @@ void Device::bind_enum(const QString &name, const QString &desc,
 
                vector< pair<Glib::VariantBase, QString> > values;
                while ((iter.next_value(gvar)))
-                       values.push_back(make_pair(gvar, printer(gvar)));
+                       values.emplace_back(gvar, printer(gvar));
 
                properties_.push_back(shared_ptr<Property>(new Enum(name, desc, values,
                        getter, setter)));