map: remove unused code (#7622)
parent
9e6575eaab
commit
1d339cff16
|
@ -330,66 +330,6 @@ fn new_map_2(key_bytes int, value_bytes int, hash_fn MapHashFn, key_eq_fn MapEqF
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete this
|
|
||||||
fn new_map(key_bytes int, value_bytes int) map {
|
|
||||||
metasize := int(sizeof(u32) * (init_capicity + extra_metas_inc))
|
|
||||||
// for now assume anything bigger than a pointer is a string
|
|
||||||
has_string_keys := key_bytes > sizeof(voidptr)
|
|
||||||
mut hash_fn := MapHashFn(0)
|
|
||||||
mut key_eq_fn := MapEqFn(0)
|
|
||||||
mut clone_fn := MapCloneFn(0)
|
|
||||||
match key_bytes {
|
|
||||||
// assume non-string keys are bitwise comparable
|
|
||||||
1 {
|
|
||||||
hash_fn = &map_hash_int_1
|
|
||||||
key_eq_fn = &map_eq_int_1
|
|
||||||
clone_fn = &map_clone_int_1
|
|
||||||
}
|
|
||||||
2 {
|
|
||||||
hash_fn = &map_hash_int_2
|
|
||||||
key_eq_fn = &map_eq_int_2
|
|
||||||
clone_fn = &map_clone_int_2
|
|
||||||
}
|
|
||||||
4 {
|
|
||||||
hash_fn = &map_hash_int_4
|
|
||||||
key_eq_fn = &map_eq_int_4
|
|
||||||
clone_fn = &map_clone_int_4
|
|
||||||
}
|
|
||||||
8 {
|
|
||||||
hash_fn = &map_hash_int_8
|
|
||||||
key_eq_fn = &map_eq_int_8
|
|
||||||
clone_fn = &map_clone_int_8
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
hash_fn = &map_hash_string
|
|
||||||
key_eq_fn = &map_eq_string
|
|
||||||
clone_fn = &map_clone_string
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mut free_fn := MapFreeFn(0)
|
|
||||||
if has_string_keys {
|
|
||||||
free_fn = &map_free_string
|
|
||||||
} else {
|
|
||||||
free_fn = &map_free_nop
|
|
||||||
}
|
|
||||||
return map{
|
|
||||||
key_bytes: key_bytes
|
|
||||||
value_bytes: value_bytes
|
|
||||||
even_index: init_even_index
|
|
||||||
cached_hashbits: max_cached_hashbits
|
|
||||||
shift: init_log_capicity
|
|
||||||
key_values: new_dense_array(key_bytes, value_bytes)
|
|
||||||
metas: &u32(vcalloc(metasize))
|
|
||||||
extra_metas: extra_metas_inc
|
|
||||||
len: 0
|
|
||||||
has_string_keys: has_string_keys
|
|
||||||
hash_fn: hash_fn
|
|
||||||
key_eq_fn: key_eq_fn
|
|
||||||
clone_fn: clone_fn
|
|
||||||
free_fn: free_fn
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn new_map_init_2(hash_fn MapHashFn, key_eq_fn MapEqFn, clone_fn MapCloneFn, free_fn MapFreeFn, n int, key_bytes int, value_bytes int, keys voidptr, values voidptr) map {
|
fn new_map_init_2(hash_fn MapHashFn, key_eq_fn MapEqFn, clone_fn MapCloneFn, free_fn MapFreeFn, n int, key_bytes int, value_bytes int, keys voidptr, values voidptr) map {
|
||||||
mut out := new_map_2(key_bytes, value_bytes, hash_fn, key_eq_fn, clone_fn, free_fn)
|
mut out := new_map_2(key_bytes, value_bytes, hash_fn, key_eq_fn, clone_fn, free_fn)
|
||||||
// TODO pre-allocate n slots
|
// TODO pre-allocate n slots
|
||||||
|
@ -405,22 +345,6 @@ fn new_map_init_2(hash_fn MapHashFn, key_eq_fn MapEqFn, clone_fn MapCloneFn, fre
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete this
|
|
||||||
fn new_map_init_1(n int, key_bytes int, value_bytes int, keys voidptr, values voidptr) map {
|
|
||||||
mut out := new_map(key_bytes, value_bytes)
|
|
||||||
// TODO pre-allocate n slots
|
|
||||||
mut pkey := byteptr(keys)
|
|
||||||
mut pval := byteptr(values)
|
|
||||||
for _ in 0 .. n {
|
|
||||||
unsafe {
|
|
||||||
out.set_1(pkey, pval)
|
|
||||||
pkey += key_bytes
|
|
||||||
pval += value_bytes
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
[inline]
|
[inline]
|
||||||
fn (m &map) key_to_index(pkey voidptr) (u32, u32) {
|
fn (m &map) key_to_index(pkey voidptr) (u32, u32) {
|
||||||
hash := m.hash_fn(pkey)
|
hash := m.hash_fn(pkey)
|
||||||
|
@ -628,11 +552,6 @@ fn (m &map) get_1(key voidptr, zero voidptr) voidptr {
|
||||||
return zero
|
return zero
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete this
|
|
||||||
fn (m map) exists(key string) bool {
|
|
||||||
return m.exists_1(&key)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Checks whether a particular key exists in the map.
|
// Checks whether a particular key exists in the map.
|
||||||
fn (m &map) exists_1(key voidptr) bool {
|
fn (m &map) exists_1(key voidptr) bool {
|
||||||
mut index, mut meta := m.key_to_index(key)
|
mut index, mut meta := m.key_to_index(key)
|
||||||
|
|
|
@ -250,6 +250,8 @@ fn (mut g Gen) encode_array(value_type table.Type) string {
|
||||||
fn (mut g Gen) decode_map(key_type table.Type, value_type table.Type) string {
|
fn (mut g Gen) decode_map(key_type table.Type, value_type table.Type) string {
|
||||||
styp := g.typ(key_type)
|
styp := g.typ(key_type)
|
||||||
styp_v := g.typ(value_type)
|
styp_v := g.typ(value_type)
|
||||||
|
key_type_symbol := g.table.get_type_symbol(key_type)
|
||||||
|
hash_fn, key_eq_fn, clone_fn, free_fn := g.map_fn_ptrs(key_type_symbol)
|
||||||
fn_name_v := js_dec_name(styp_v)
|
fn_name_v := js_dec_name(styp_v)
|
||||||
mut s := ''
|
mut s := ''
|
||||||
if is_js_prim(styp_v) {
|
if is_js_prim(styp_v) {
|
||||||
|
@ -269,7 +271,7 @@ fn (mut g Gen) decode_map(key_type table.Type, value_type table.Type) string {
|
||||||
Option err = v_error( string_add(_SLIT("Json element is not an object: "), tos2(cJSON_PrintUnformatted(root))) );
|
Option err = v_error( string_add(_SLIT("Json element is not an object: "), tos2(cJSON_PrintUnformatted(root))) );
|
||||||
return *(Option_map_${styp}_$styp_v *)&err;
|
return *(Option_map_${styp}_$styp_v *)&err;
|
||||||
}
|
}
|
||||||
res = new_map(sizeof($styp), sizeof($styp_v));
|
res = new_map_2(sizeof($styp), sizeof($styp_v), $hash_fn, $key_eq_fn, $clone_fn, $free_fn);
|
||||||
cJSON *jsval = NULL;
|
cJSON *jsval = NULL;
|
||||||
cJSON_ArrayForEach(jsval, root)
|
cJSON_ArrayForEach(jsval, root)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue