From 06f2d8c80d08517d58ccff7dee1390882fdecc29 Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Thu, 12 Jan 2023 01:59:26 +0800 Subject: [PATCH] feat: try to malloc on heap memory --- src/fast_cal.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/fast_cal.cc b/src/fast_cal.cc index 0066462..34d2687 100644 --- a/src/fast_cal.cc +++ b/src/fast_cal.cc @@ -13,6 +13,7 @@ struct fast_cal_t { }; std::unordered_map cal_data; +//std::unordered_map cal_data; std::queue cal_temp; void add_new_case(uint64_t code, uint64_t mask) { @@ -29,6 +30,7 @@ void add_new_case(uint64_t code, uint64_t mask) { if (exist_case != cal_data.end()) { // find it exist_case->second.mask |= mask; // mask update +// exist_case->second->mask |= mask; // mask update return; } @@ -42,6 +44,7 @@ void add_new_case(uint64_t code, uint64_t mask) { // std::cout << std::endl; auto new_case = fast_cal_t { +// auto new_case = new fast_cal_t { .code = code, .mask = mask, }; @@ -51,6 +54,7 @@ void add_new_case(uint64_t code, uint64_t mask) { // TODO: avoid redundancy map search cal_temp.emplace(&cal_data[code]); +// cal_temp.emplace(new_case); } uint32_t fast_cal(uint64_t start_raw_code) { @@ -68,6 +72,10 @@ uint32_t fast_cal(uint64_t start_raw_code) { cal_data[start_raw_code] = setup; cal_temp.emplace(&cal_data[start_raw_code]); + // TODO: setup should not be stack var +// cal_data[start_raw_code] = &setup; +// cal_temp.emplace(&setup); + while (!cal_temp.empty()) { if (((cal_temp.front()->code >> (3 * 0xD)) & 0b111) == B_2x2) {