From 0a5397345c8dcfbce82c375237a68583eff9b865 Mon Sep 17 00:00:00 2001 From: Huamonarch Date: Wed, 13 May 2026 09:15:20 +0800 Subject: [PATCH] Fix: access TaskRecord::data_record vector after TaskData refactor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit e21b2af changed TaskShm map value from DataRecord (flat array) to TaskRecord (struct wrapping shm_vector_f), but three call sites in exp_base.cpp didn't drill into the .data_record member — they called size()/operator[]/push_back() on TaskRecord itself, which has none. --- eqpalg/algs/exp_base.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/eqpalg/algs/exp_base.cpp b/eqpalg/algs/exp_base.cpp index e528d97..aeebdd7 100644 --- a/eqpalg/algs/exp_base.cpp +++ b/eqpalg/algs/exp_base.cpp @@ -198,7 +198,8 @@ std::vector ExpBase::exec_task(mix_cc::time_range_t time_range) { logger_->Debug() << "task_seq:" << task_seq << std::endl; auto &data_record = TaskShm::TaskRecordPtr.get() -> - operator[](exp_type_ * 1000 + task_seq); + operator[](exp_type_ * 1000 + task_seq) + .data_record; logger_->Debug() << "dataSize:" << data_record.size() << std::endl; for (size_t j = 0; j < data_record.size(); j++) { double dataJ = data_record[j]; @@ -1363,7 +1364,7 @@ void ExpBase::task_mon_pro() { TaskShm::TaskRecordPtr.get() -> operator[](exp_type_ * 1000 + task_seq) - .push_back(res.value); + .data_record.push_back(res.value); this->sta_ptr_->running_stat_add(res.value); } }