Before, the mismatched registration/deregistration lead to
crashes. Example:
Load file, load another file into the same session,
change any setting -> crash because first change notifier is
called but invalid
update_scale();
}
-AnalogSignal::~AnalogSignal()
-{
- GlobalSettings::remove_change_handler(this);
-}
-
shared_ptr<pv::data::SignalData> AnalogSignal::data() const
{
return base_->analog_data();
public:
AnalogSignal(pv::Session &session, shared_ptr<data::SignalBase> base);
- ~AnalogSignal();
-
shared_ptr<pv::data::SignalData> data() const;
virtual void save_settings(QSettings &settings) const;
settings.value(GlobalSettings::Key_View_ShowHoverMarker).toBool();
}
+Trace::~Trace()
+{
+ GlobalSettings::remove_change_handler(this);
+}
+
shared_ptr<data::SignalBase> Trace::base() const
{
return base_;
protected:
Trace(shared_ptr<data::SignalBase> channel);
+ ~Trace();
public:
/**