]> sigrok.org Git - pulseview.git/blobdiff - pv/binding/device.cpp
fix catching polymorphic types by value
[pulseview.git] / pv / binding / device.cpp
index 20082db2f7a949666151fc01e006d7408f7fb3ab..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();
                }
 
@@ -157,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)));