Skip to content

Commit df6a7bf

Browse files
cmd/link: use MapMaxKeyBytes,MapMaxElemBytes,MapBucketCount of internal/abi
For #59670
1 parent 9b4b3e5 commit df6a7bf

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

src/cmd/link/internal/ld/dwarf.go

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -850,13 +850,6 @@ func mkinternaltypename(base string, arg1 string, arg2 string) string {
850850
return fmt.Sprintf("%s<%s,%s>", base, arg1, arg2)
851851
}
852852

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-
860853
func (d *dwctxt) mkinternaltype(ctxt *Link, abbrev int, typename, keyname, valname string, f func(*dwarf.DWDie)) loader.Sym {
861854
name := mkinternaltypename(typename, keyname, valname)
862855
symname := dwarf.InfoPrefix + name
@@ -891,40 +884,40 @@ func (d *dwctxt) synthesizemaptypes(ctxt *Link, die *dwarf.DWDie) {
891884

892885
// compute size info like hashmap.c does.
893886
indirectKey, indirectVal := false, false
894-
if keysize > MaxKeySize {
887+
if keysize > abi.MapMaxKeyBytes {
895888
keysize = int64(d.arch.PtrSize)
896889
indirectKey = true
897890
}
898-
if valsize > MaxValSize {
891+
if valsize > abi.MapMaxElemBytes {
899892
valsize = int64(d.arch.PtrSize)
900893
indirectVal = true
901894
}
902895

903896
// Construct type to represent an array of BucketSize keys
904897
keyname := d.nameFromDIESym(keytype)
905898
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)
907900
t := keytype
908901
if indirectKey {
909902
t = d.defptrto(keytype)
910903
}
911904
d.newrefattr(dwhk, dwarf.DW_AT_type, t)
912905
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)
914907
d.newrefattr(fld, dwarf.DW_AT_type, d.uintptrInfoSym)
915908
})
916909

917910
// Construct type to represent an array of BucketSize values
918911
valname := d.nameFromDIESym(valtype)
919912
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)
921914
t := valtype
922915
if indirectVal {
923916
t = d.defptrto(valtype)
924917
}
925918
d.newrefattr(dwhv, dwarf.DW_AT_type, t)
926919
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)
928921
d.newrefattr(fld, dwarf.DW_AT_type, d.uintptrInfoSym)
929922
})
930923

@@ -936,20 +929,20 @@ func (d *dwctxt) synthesizemaptypes(ctxt *Link, die *dwarf.DWDie) {
936929

937930
fld := d.newdie(dwhb, dwarf.DW_ABRV_STRUCTFIELD, "keys")
938931
d.newrefattr(fld, dwarf.DW_AT_type, dwhks)
939-
newmemberoffsetattr(fld, BucketSize)
932+
newmemberoffsetattr(fld, abi.MapBucketCount)
940933
fld = d.newdie(dwhb, dwarf.DW_ABRV_STRUCTFIELD, "values")
941934
d.newrefattr(fld, dwarf.DW_AT_type, dwhvs)
942-
newmemberoffsetattr(fld, BucketSize+BucketSize*int32(keysize))
935+
newmemberoffsetattr(fld, abi.MapBucketCount+abi.MapBucketCount*int32(keysize))
943936
fld = d.newdie(dwhb, dwarf.DW_ABRV_STRUCTFIELD, "overflow")
944937
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)))
946939
if d.arch.RegSize > d.arch.PtrSize {
947940
fld = d.newdie(dwhb, dwarf.DW_ABRV_STRUCTFIELD, "pad")
948941
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))
950943
}
951944

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)
953946
})
954947

955948
// Construct hash<K,V>

0 commit comments

Comments
 (0)