From ff8f754dcc60853bf7cfcb81d3caa76723d3481d Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sat, 5 Mar 2022 11:20:53 +0800 Subject: [PATCH] refactor --- src/util/map/_impl/_hashmap_put_impl.scad | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/util/map/_impl/_hashmap_put_impl.scad b/src/util/map/_impl/_hashmap_put_impl.scad index c5a9401a..5e12a7b9 100644 --- a/src/util/map/_impl/_hashmap_put_impl.scad +++ b/src/util/map/_impl/_hashmap_put_impl.scad @@ -11,11 +11,14 @@ function _hashmap_put(buckets, b_numbers, key, value, eq, hash) = _put(buckets, b_numbers, bucket, key, value, b_idx); function _replace(buckets, b_numbers, bucket, key, value, b_idx, k_idx) = - let( - leng_bucket = len(bucket), - n_bucket = [for(i = 0; i < leng_bucket; i = i + 1) i == k_idx ? [key, value] : bucket[i]] - ) - [for(i = 0; i < b_numbers; i = i + 1) i == b_idx ? n_bucket : buckets[i]]; + let(leng_bucket = len(bucket)) + [ + for(bi = 0; bi < b_numbers; bi = bi + 1) + if(bi == b_idx) + [for(ki = 0; ki < leng_bucket; ki = ki + 1) ki == k_idx ? [key, value] : bucket[ki]] + else + buckets[bi] + ]; function _put(buckets, b_numbers, bucket, key, value, b_idx) = [for(i = 0; i < b_numbers; i = i + 1) i == b_idx ? [each bucket, [key, value]] : buckets[i]]; \ No newline at end of file