]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: avoid zeroing hmap fields in makemap twice
authorMartin Möhrmann <moehrmann@google.com>
Wed, 16 Aug 2017 21:52:16 +0000 (23:52 +0200)
committerMartin Möhrmann <moehrmann@google.com>
Thu, 17 Aug 2017 20:10:23 +0000 (20:10 +0000)
Stack allocated hmap structs are explicitly zeroed before being
passed by pointer to makemap.

Heap allocated hmap structs are created with newobject
which also zeroes on allocation.

Therefore, setting the hmap fields to 0 or nil is redundant
since they will have been zeroed when hmap was allocated.

Change-Id: I5fc55b75e9dc5ba69f5e3588d6c746f53b45ba66
Reviewed-on: https://go-review.googlesource.com/56291
Reviewed-by: Keith Randall <khr@golang.org>
src/runtime/hashmap.go

index 3e413e52f7dc27583a4517231109c9bd0191b182..28ea376cf4522019dd1fbfdba950d4cac92ee510 100644 (file)
@@ -335,15 +335,10 @@ func makemap(t *maptype, hint int64, h *hmap, bucket unsafe.Pointer) *hmap {
        if h == nil {
                h = (*hmap)(newobject(t.hmap))
        }
-       h.count = 0
        h.B = B
        h.extra = extra
-       h.flags = 0
        h.hash0 = fastrand()
        h.buckets = buckets
-       h.oldbuckets = nil
-       h.nevacuate = 0
-       h.noverflow = 0
 
        return h
 }