diff --git a/src_main/io_devices/piconfig.h b/src_main/io_devices/piconfig.h index 40e1d808..b53a180b 100755 --- a/src_main/io_devices/piconfig.h +++ b/src_main/io_devices/piconfig.h @@ -525,15 +525,16 @@ inline PICout operator <<(PICout s, const PIConfig::Entry & v) {s << v.value(); * from configuration file in implementation \a PIIODevice::configureDevice() function */ template T readDeviceSetting(const PIString & name, const T & def, const PIConfig::Entry * em, const PIConfig::Entry * ep) { - PIVariant v = PIVariant::fromValue(T()); - if (ep != 0) { - bool ex; - v.setValueFromString(ep->getValue(name, def, &ex).toString()); - if (!ex) v.setValueFromString(em->getValue(name, def).toString()); + PIVariant v = PIVariant::fromValue(def); + if (ep) { + bool ex = false; + PIString sv = ep->getValue(name, def, &ex).toString(); + if (!ex) + return def; + v.setValueFromString(sv); return v.value(); } - v.setValueFromString(em->getValue(name, def).toString()); - return v.value(); + return def; } #endif // PICONFIG_H