From 9b4a564ae92cfa2c5b785efe3f09fc1aaeecd1f4 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Mon, 6 Mar 2023 19:49:03 +0800 Subject: [PATCH] fix: Failed to calculate the math Function on DSO mode --- DSView/pv/dialogs/mathoptions.cpp | 5 ++++- DSView/pv/sigsession.cpp | 3 +++ DSView/pv/view/trace.cpp | 8 +++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/DSView/pv/dialogs/mathoptions.cpp b/DSView/pv/dialogs/mathoptions.cpp index 5fd96bb8..2f1f0a07 100644 --- a/DSView/pv/dialogs/mathoptions.cpp +++ b/DSView/pv/dialogs/mathoptions.cpp @@ -216,7 +216,10 @@ void MathOptions::accept() dsoSig2 = dsoSig; } } - _session->math_rebuild(enable, dsoSig1, dsoSig2, type); + + if (dsoSig1 != NULL && dsoSig2 != NULL){ + _session->math_rebuild(enable, dsoSig1, dsoSig2, type); + } } void MathOptions::reject() diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index 9490057e..dadbe8b8 100644 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -1438,6 +1438,9 @@ namespace pv { ds_lock_guard lock(_data_mutex); + assert(dsoSig1); + assert(dsoSig2); + auto math_stack = new data::MathStack(this, dsoSig1, dsoSig2, type); DESTROY_OBJECT(_math_trace); _math_trace = new view::MathTrace(enable, math_stack, dsoSig1, dsoSig2); diff --git a/DSView/pv/view/trace.cpp b/DSView/pv/view/trace.cpp index ce1c7d43..af1cc03d 100644 --- a/DSView/pv/view/trace.cpp +++ b/DSView/pv/view/trace.cpp @@ -133,6 +133,10 @@ int Trace::get_type() int Trace::get_index() { + if(_index_list.size() == 0){ + assert(false); + } + return _index_list.front(); } @@ -143,7 +147,9 @@ std::list Trace::get_index_list() void Trace::set_index_list(const std::list &index_list) { - assert(index_list.size() != 0); + if (index_list.size() == 0){ + assert(false); + } _index_list = index_list; }