@@ -850,13 +850,6 @@ func mkinternaltypename(base string, arg1 string, arg2 string) string {
850
850
return fmt .Sprintf ("%s<%s,%s>" , base , arg1 , arg2 )
851
851
}
852
852
853
- // synthesizemaptypes is way too closely married to runtime/hashmap.c
854
- const (
855
- MaxKeySize = abi .MapMaxKeyBytes
856
- MaxValSize = abi .MapMaxElemBytes
857
- BucketSize = abi .MapBucketCount
858
- )
859
-
860
853
func (d * dwctxt ) mkinternaltype (ctxt * Link , abbrev int , typename , keyname , valname string , f func (* dwarf.DWDie )) loader.Sym {
861
854
name := mkinternaltypename (typename , keyname , valname )
862
855
symname := dwarf .InfoPrefix + name
@@ -891,40 +884,40 @@ func (d *dwctxt) synthesizemaptypes(ctxt *Link, die *dwarf.DWDie) {
891
884
892
885
// compute size info like hashmap.c does.
893
886
indirectKey , indirectVal := false , false
894
- if keysize > MaxKeySize {
887
+ if keysize > abi . MapMaxKeyBytes {
895
888
keysize = int64 (d .arch .PtrSize )
896
889
indirectKey = true
897
890
}
898
- if valsize > MaxValSize {
891
+ if valsize > abi . MapMaxElemBytes {
899
892
valsize = int64 (d .arch .PtrSize )
900
893
indirectVal = true
901
894
}
902
895
903
896
// Construct type to represent an array of BucketSize keys
904
897
keyname := d .nameFromDIESym (keytype )
905
898
dwhks := d .mkinternaltype (ctxt , dwarf .DW_ABRV_ARRAYTYPE , "[]key" , keyname , "" , func (dwhk * dwarf.DWDie ) {
906
- newattr (dwhk , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , BucketSize * keysize , 0 )
899
+ newattr (dwhk , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , abi . MapBucketCount * keysize , 0 )
907
900
t := keytype
908
901
if indirectKey {
909
902
t = d .defptrto (keytype )
910
903
}
911
904
d .newrefattr (dwhk , dwarf .DW_AT_type , t )
912
905
fld := d .newdie (dwhk , dwarf .DW_ABRV_ARRAYRANGE , "size" )
913
- newattr (fld , dwarf .DW_AT_count , dwarf .DW_CLS_CONSTANT , BucketSize , 0 )
906
+ newattr (fld , dwarf .DW_AT_count , dwarf .DW_CLS_CONSTANT , abi . MapBucketCount , 0 )
914
907
d .newrefattr (fld , dwarf .DW_AT_type , d .uintptrInfoSym )
915
908
})
916
909
917
910
// Construct type to represent an array of BucketSize values
918
911
valname := d .nameFromDIESym (valtype )
919
912
dwhvs := d .mkinternaltype (ctxt , dwarf .DW_ABRV_ARRAYTYPE , "[]val" , valname , "" , func (dwhv * dwarf.DWDie ) {
920
- newattr (dwhv , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , BucketSize * valsize , 0 )
913
+ newattr (dwhv , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , abi . MapBucketCount * valsize , 0 )
921
914
t := valtype
922
915
if indirectVal {
923
916
t = d .defptrto (valtype )
924
917
}
925
918
d .newrefattr (dwhv , dwarf .DW_AT_type , t )
926
919
fld := d .newdie (dwhv , dwarf .DW_ABRV_ARRAYRANGE , "size" )
927
- newattr (fld , dwarf .DW_AT_count , dwarf .DW_CLS_CONSTANT , BucketSize , 0 )
920
+ newattr (fld , dwarf .DW_AT_count , dwarf .DW_CLS_CONSTANT , abi . MapBucketCount , 0 )
928
921
d .newrefattr (fld , dwarf .DW_AT_type , d .uintptrInfoSym )
929
922
})
930
923
@@ -936,20 +929,20 @@ func (d *dwctxt) synthesizemaptypes(ctxt *Link, die *dwarf.DWDie) {
936
929
937
930
fld := d .newdie (dwhb , dwarf .DW_ABRV_STRUCTFIELD , "keys" )
938
931
d .newrefattr (fld , dwarf .DW_AT_type , dwhks )
939
- newmemberoffsetattr (fld , BucketSize )
932
+ newmemberoffsetattr (fld , abi . MapBucketCount )
940
933
fld = d .newdie (dwhb , dwarf .DW_ABRV_STRUCTFIELD , "values" )
941
934
d .newrefattr (fld , dwarf .DW_AT_type , dwhvs )
942
- newmemberoffsetattr (fld , BucketSize + BucketSize * int32 (keysize ))
935
+ newmemberoffsetattr (fld , abi . MapBucketCount + abi . MapBucketCount * int32 (keysize ))
943
936
fld = d .newdie (dwhb , dwarf .DW_ABRV_STRUCTFIELD , "overflow" )
944
937
d .newrefattr (fld , dwarf .DW_AT_type , d .defptrto (d .dtolsym (dwhb .Sym )))
945
- newmemberoffsetattr (fld , BucketSize + BucketSize * (int32 (keysize )+ int32 (valsize )))
938
+ newmemberoffsetattr (fld , abi . MapBucketCount + abi . MapBucketCount * (int32 (keysize )+ int32 (valsize )))
946
939
if d .arch .RegSize > d .arch .PtrSize {
947
940
fld = d .newdie (dwhb , dwarf .DW_ABRV_STRUCTFIELD , "pad" )
948
941
d .newrefattr (fld , dwarf .DW_AT_type , d .uintptrInfoSym )
949
- newmemberoffsetattr (fld , BucketSize + BucketSize * (int32 (keysize )+ int32 (valsize ))+ int32 (d .arch .PtrSize ))
942
+ newmemberoffsetattr (fld , abi . MapBucketCount + abi . MapBucketCount * (int32 (keysize )+ int32 (valsize ))+ int32 (d .arch .PtrSize ))
950
943
}
951
944
952
- newattr (dwhb , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , BucketSize + BucketSize * keysize + BucketSize * valsize + int64 (d .arch .RegSize ), 0 )
945
+ newattr (dwhb , dwarf .DW_AT_byte_size , dwarf .DW_CLS_CONSTANT , abi . MapBucketCount + abi . MapBucketCount * keysize + abi . MapBucketCount * valsize + int64 (d .arch .RegSize ), 0 )
953
946
})
954
947
955
948
// Construct hash<K,V>
0 commit comments